C語言 查詢鍊錶的中間元素

2021-07-09 22:44:48 字數 336 閱讀 5523

查詢鍊錶的中間元素,最簡便的方法之一,就是先遍歷一遍鍊錶,得到鍊錶長度,再根據長度遍歷得到中間的元素。我這裡用的是快慢指標去查詢,只需要遍歷一次即可,快指標每次走兩步,慢指標每次走一步,當快指標走完了,慢指標所指位置即中間元素的位置,具體實現如下

struct listnode ;

/*** 若鍊錶元素為奇數個,則返回中間的元素,若鍊錶元素為偶數個,則返回中間 元素偏左的乙個

*/struct listnode* link_list_find_mid_ele(struct listnode* head)

return slow;

}

鍊錶的中間節點 移除鍊錶元素

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

查詢鍊錶中間節點

問題 鍊錶長度未知,如何查詢中間節點 分析 鍊錶中間節點受鍊錶長度影響,奇數長度如abc則中間節點為b,偶數長度如abcd則中間節點為bc。解決方法 使用兩個指標ptr1 ptr2 head,同時遍歷鍊錶,ptr1步長為1,ptr2步長為2.當ptr2到達鍊錶尾時,ptr1即為中間節點 如果鍊錶長為...

如何找到鍊錶的中間元素?

一 若煉表為雙向鍊錶。就像一根不均勻的香找出中間位置,從兩頭開始燒。同理,設定乙個頭指標,乙個尾指標,頭指標往後移動,尾指標往前移動。移動到什麼時候是中間位置呢?這就要分兩種情況了 1 鍊錶長度是偶數,此時中間位置是,頭指標 尾指標分別指向對方,則中間位置就是頭尾指標了。2 鍊錶長度是奇數,此時投尾...