问题:
鉴于一个列表,推断该列表环的存在。
分析:
这个问题是见的非常多的题目,问题本身而言,技巧性非常强,或者说思路非常巧妙,这里要说的不是这个题目本身。而是说这样的技巧。在非常多的地方是用的到的,比方,在寻找单链表的中间节点的时候,就能够用这样的形式,一个走两步,一个走一步的形式,来获得中间节点。
//
bool hasCycle(ListNode *head) { if(head == NULL) return false; ListNode *fast = head; ListNode *slow = head; while(NULL != fast && NULL != fast->next) { fast = fast->next->next; slow = slow->next; if(slow == fast) return true; } return false; }
版权声明:本文博客原创文章,博客,未经同意,不得转载。