配套的單鏈表在另一篇部落格。
核心問題就是下面的那個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...