取得單鏈表中間元素

2021-09-28 19:28:40 字數 729 閱讀 1516

配套的單鏈表在另一篇部落格。

核心問題就是下面的那個while判斷條件,和最下面的奇數鍊錶和偶數鍊錶的問題。

然後是判斷單鏈表的元素個數是奇數還是偶數的問題,觀察***畫的表。當元素個數為奇數的時候,first停止時,second位置正好就是中間的位置,問題是元素個數為偶數的時候,first停止時,中間有兩個位置,我選擇的返回的是第二個位置。

/// /// 取得中間元素

///

///

public linkgetmiddleelement()

//因為first要往後移動兩位

//首先要考慮,first在上一次成功移動後,是不是到達了單鏈表的末端,

//如果剛好到達了末端的話,也就說明first=null,那麼first就沒有next了,也就沒有first.next.next了

//如果沒有到達末端的話,說明first.next != null

//然後綜合兩者得出如下while語句的條件

while (first != null && first.next != null)

//解決奇數偶數問題

if (count % 2 == 0)

return second;}}

查詢單鏈表中間元素

查詢單鏈表中間元素 include using namespace std struct linknode class linklist linklist void insertvalue int nvalue void reverse void reverse2 linknode findlast...

求單鏈表的中間元素

示例1 輸入 1 2 3 輸出 2 示例2 輸入 1 2 3 4 輸出 2思路 如果是陣列,我們可以怎麼求中間元素 arr arr.length 1 2 相模擬,如果是鍊錶 a.求鍊錶的長度 b.從頭開始遍歷鍊錶,並計數 public class middleelement 計算中間元素的索引 in...

3,找出單鏈表的中間元素

問題 找出單鏈表的中間元素 思路 快慢指標。快指標每次走兩步,慢指標每次走1步。快指標走到頭時,慢指標所指即為中間結點。如果結點個數n為偶數,則中間結點為第n 2個結點。linktable.cpp 定義控制台應用程式的入口點。include stdafx.h include include usin...