環形鍊錶 II

2021-10-03 04:35:07 字數 1018 閱讀 2413

給定乙個鍊錶,返回鍊錶開始入環的第乙個節點。 如果鍊錶無環,則返回 null。

為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置(索引從 0 開始)。 如果 pos 是

-1,則在該鍊錶中沒有環。

說明:不允許修改給定的鍊錶。

/**

* definition for singly-linked list.

* class listnode

* }*/public

class

solution

set.

add(head)

; head = head.next;

}return null;

}}

思路二:

也是雙指標,不過對上一題又進行了擴充套件。在找到兩個指標相遇的地點之後,記錄下該地點。

然後再使用兩個指標,乙個從煉表頭開始,乙個從相遇點開始,每次前進一步,在兩個指標相遇的地點,就是環的入口。

證明過程暫時不會,溜了

同理:時間複雜度為o(n),空間複雜度為o(1)。

啊!上個題裡的做法不可取,它fast一開始就比slow快一步,因為只需要碰到就行了。這裡需要他們從同一起點出發,要不然演算法就廢了。啊啊啊!折磨了我半天

public

class

solution

listnode slow = head;

listnode fast = head;

while

(fast!=null && fast.next!=null)}if

(slow!=fast)

listnode in = slow;

listnode out = head;

while

(in!=out)

return in;

}}

環形鍊錶 II

給定乙個鍊錶,返回鍊錶開始入環的第乙個節點。如果鍊錶無環,則返回 null。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環。說明 不允許修改給定的鍊錶。示例 1 輸入 head 3,2,0,4 pos 1 輸出...

環形鍊錶II

1.問題描述 給定乙個鍊錶,返回鍊錶開始入環的第乙個節點。如果鍊錶無環,則返回null。為了表示給定鍊錶中的環,我們使用整數pos來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果pos是 1,則在該鍊錶中沒有環。說明 不允許修改給定的鍊錶。示例 1 輸入 head 3,2,0,4 pos 1 ...

環形鍊錶II

題目描述 給定乙個鍊錶,返回鍊錶開始入環的第乙個節點。如果鍊錶無環,則返回 null。示例1 輸入 head 3,2,0,4 pos 1 輸出 返回索引為 1 的鍊錶節點 解釋 鍊錶中有乙個環,其尾部連線到第二個節點。示例2 輸入 head 1,2 pos 0 輸出 返回索引為 0 的鍊錶節點 解釋...