劍指Offer 程式設計題56(鍊錶中環的入口位址)

2021-07-15 15:18:46 字數 336 閱讀 1378

可以用兩個指標來解決這個問題。先定義兩個指標p1和p2指向鍊錶的頭結點。如果鍊錶中環有n個結點,指標p1在鍊錶上向前移動n步,然後兩個指標以相同的速度向前移動。當第二個指標指向環的入口結點時,第乙個指標已經圍繞著環走了一圈又回到了入口結點。 

剩下的問題就是如何得到環中結點的數目。我們在面試題15的第二個相關題目時用到了一快一慢的兩個指標。如果兩個指標相遇,表明鍊錶中存在環。兩個指標相遇的結點一定是在環中。可以從這個結點出發,一邊繼續向前移動一邊計數,當再次回到這個結點時就可以得到環中結點數了。

劍指Offer 程式設計題56 刪除鍊錶中重複的結點

題目 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 牛客網 鏈結 leetcode同題 leetcode82 remove duplicates from sorted list ii le...

劍指offer 第56題 刪除鍊錶中重複的結點

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 兩個指標,p1,p2,p1記錄當前不重複的最前乙個結點,p2負責探路 如果p2和p2.next不相等,則p2,p1都向後移動乙個 如果相等,p2...

劍指Offer刷題 鍊錶

劍指 offer 18.刪除鍊錶的節點 難度簡單 給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。返回刪除後的鍊錶的頭節點。注意 此題對比原題有改動 示例 1 輸入 head 4,5,1,9 val 5 輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的...