My Twelfth Page - 环形链表Ⅱ - By Nicolas
這篇page針對的是leetcode上面142.環形鏈表Ⅱ所寫的,小尼首先給大家簡單說明一下這道題的意思,給定一個鏈表的頭節點head,返回鏈表開始進入環的第一個節點,如果鏈表無環,則返回null
首先小尼先上一下圖說明一下這道題的思路:
小尼這里給出思路,這里最終重要的揭露就是x=z,這個的出來是因為上面的等式中(n-1)表示的是快指針跑的圈數,這個不會不會影響我們對x與z值的判斷
這里小尼給出代碼:
LinkNode slow = head;
LinkNode fast = head;
while(fast != null && fast.next != null){
? ? ? ? slow = slow.next;
? ? ? ? fast = fast.next;
? ? ? ? if(fast == slow){
? ? ? ? ? ? ? ? LinkNode index = fast;
? ? ? ? ? ? ? ? LinkNode index1 = head;
????????}
? ? ? ? while(index != index1){
? ? ? ? ? ? ? ? index = index.next;
? ? ? ? ? ? ? ? index1 = index1.next;
????????}
? ? ? ? return index;
}
return null;
當我們找出slow和fast相等的位置的時候,我們這個時候就記錄此時的節點,記錄為index,然后再記錄index1,然后我們再執行一個while循環,當我們循環的過程中我們的兩個進入循環的值相等時這個時候就我們的節點進入環形鏈表的入口。
?
?
總結
以上是生活随笔為你收集整理的My Twelfth Page - 环形链表Ⅱ - By Nicolas的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言多人对战贪吃蛇,双人对战贪吃蛇
- 下一篇: 使用html+css画一个波士顿凯尔特人