常见面试题 -- 链表逆序相关(逆序、环、两链相交)
反序一个单向链表
class Node { Node* next;}// Return the new start after reversion. Node* ReverseList (Node* start) { } node *reserve(node *head){ node *p,*q,*r; p=head; q=p->next; while(q!=null) { r=q->next; q->next=p; p=q; q=r; } head->next=null; head=p; return head; } bool IsExitsLoop(slist *head){ slist *slow = head, *fast = head; while ( fast && fast->next ) { slow = slow->next; fast = fast->next->next; if ( slow == fast ) break; } return !(fast == NULL || fast->next == NULL);}slist* FindLoopPort(slist *head){ slist *slow = head, *fast = head; while ( fast && fast->next ) { slow = slow->next; fast = fast->next->next; if ( slow == fast ) break; } if (fast == NULL || fast->next == NULL) return NULL; slow = head; while (slow != fast) { slow = slow->next; fast = fast->next; } return slow;}