給定一個鏈表,判斷鏈表中是否有環。
爲了表示給定鏈表中的環,我們使用整數
pos
來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)。 如果pos
是-1
,則在該鏈表中沒有環。
示例 1:
輸入:head = [3,2,0,-4], pos = 1 輸出:true 解釋:鏈表中有一個環,其尾部連接到第二個節點。示例 2:
輸入:head = [1,2], pos = 0 輸出:true 解釋:鏈表中有一個環,其尾部連接到第一個節點。示例 3:
輸入:head = [1], pos = -1 輸出:false 解釋:鏈表中沒有環。特殊情況1:空鏈表不成環;
特殊情況2:單節點不自成環。雙指針法兩個指針判斷,一個快一個慢,如果存在環,則快的指針一定會追上慢的指針
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: bool hasCycle(ListNode *head) { if(head==NULL||head->next==NULL) return false; ListNode *fast=head,*slow=head; while(fast!=NULL&&fast->next!=NULL) { slow=slow->next; fast=fast->next->next; if(fast==slow) return true; } return false; } };
Leetcode 141. 環形鏈表 思維
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.