利用快慢指標解決查詢鍊錶的中間節點問題

2021-10-05 20:36:24 字數 548 閱讀 2275

問題描述:

找到鍊錶的中間節點,並輸出節點的資訊。

解題思路:

定義乙個快指標,再定義乙個慢指標,快指標每次走兩步,慢指標每次走一步。當快指標指向結尾的時候,慢指標剛好指向中間節點。

**如下:

注意:如果你對**中的 speed != null 這個判斷條件有疑問的話,你把節點設定成奇數個你就懂了。

package com.guigu.linkedlistdemo;

public

class

speedandslow

// 返回的指向中間節點的指標

public

static hnode speedandslowpointer

(linkedlist list)

return slow;

// 將慢指標返回

}}

執行截圖:

利用快慢指標尋找鍊錶中間節點

876.鍊錶的中間結點 這道題要求我們找到鍊錶中的中間位置,首先想到第一種方法,使用兩個指標,乙個從頭遍歷到尾部確定長度,乙個從頭遍歷到相應位置。那麼有沒有一遍遍歷就能解決的?那麼我們想到快慢指標,因為快慢指標往往可以做到一遍遍歷,在慢指標處找到答案 做法 慢指標走一步,快指標走兩步。這樣快指標到末...

鍊錶的中間結點(快慢指標)

給定乙個帶有頭結點 head 的非空單鏈表,返回鍊錶的中間結點。如果有兩個中間結點,則返回第二個中間結點。示例 1 輸入 1,2,3,4,5 輸出 此列表中的結點 3 序列化形式 3,4,5 返回的結點值為 3 測評系統對該結點序列化表述是 3,4,5 注意,我們返回了乙個 listnode 型別的...

鍊錶的快慢指標 查詢中點

一直做題都是陣列中點,直接算n 2,但是鍊錶的中點怎麼求出來,我還真沒見過,只能說自己做題太少了。今天做leetcode上的題就遇到了,雖然說簡單,但對我來說這是個新的知識點,我得記錄一下,如下 cpp view plain copy listnode findmidnode listnode he...