給定乙個鍊錶,判斷鍊錶中是否有環。思路一:
通過乙個雜湊表,在向後遍歷時每遍歷乙個就加進去,然後判斷這個節點之前是否新增過。如果從頭到尾都沒有則不是環形,有的話就是。
/**
* definition for singly-linked list.
* class listnode
* }*/public
class
solution
set.
add(head)
; head = head.next;
}return
false;}
}
思路二:
使用雙指標,乙個跑得快,乙個跑得慢。如果有環的話,那麼跑的快的一定會追上跑的慢的。如果到頭都沒有追上,那麼就沒有環。
public
class
solution
listnode slow = head;
listnode fast = head.next;
while
(fast!=null && fast.next!=null)
slow = slow.next;
fast = fast.next.next;
}return
false;}
}
環形鍊錶I 與 環形鍊錶II(非常容易理解)
環形鍊錶i 題目描述 給定乙個鍊錶,判斷鍊錶中是否有環。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環 示例 1 輸入 head 3,2,0,4 pos 1 輸出 true 解釋 鍊錶中有乙個環,其尾部連線到第...
鍊錶 環形鍊錶
環形鍊錶也叫迴圈鍊錶 可以是雙鏈表 也可以是單鏈表 操作原理和單鏈表差不多,只是最後乙個節點不在指向空 null 而是頭 head 這裡以單鏈表舉例 description 環形鍊錶 author lzq date 2018 11 3 20 46 version 1.0 public class a...
鍊錶 環形鍊錶
題目描述 給定乙個鍊錶,返回鍊錶開始入環的第乙個節點。如果鍊錶無環,則返回 null。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環。注意,pos 僅僅是用於標識環的情況,並不會作為引數傳遞到函式中。說明 不允...