面试系列---经典算法部分

    xiaoxiao2021-03-25  132

    单链表反转

    LinkList reverse_link(LinkList list) { if(NULL == list || NULL == list->next) return list; LinkList temp,prev,next; prev=list; temp=list->next; prev->next=NUll; while(temp!= NULL){ next=temp->next;//原后指针给next temp->next =prev; //后指针指向list,成为前指针 temp=next;//nextt给temp prev=temp;//temp给prev } return prev; }

    时间复杂度为O(n)

    单链表找环

    使用快慢指针;

    int get_circle_local(Node *phead) { Node *fast = phead; Node *slow = phead; while(fast != NULL && fast->next != NULL) { fast = fast->next->next; slow = slow->next; if(fast == slow) { return 1; } } return 0; } O(1)删除单链表中指定地址结点(结点数据确定)

    链表深拷贝

    有一个特殊的链表,其中每个结点不但有指向下一个结点的指针PNEXT,还有一个指向链表中的任意结点的指针PRAND,如何拷贝这个链表?

    单链表反序输出

    编码实现大数的乘法操作

    数组映射表

    转载请注明原文地址: https://ju.6miu.com/read-24906.html

    最新回复(0)