单链表反转
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,如何拷贝这个链表?
单链表反序输出
编码实现大数的乘法操作
数组映射表