3 找出單鏈表的中間元素

2021-06-23 05:06:39 字數 424 閱讀 8068

分析: 兩個人賽跑,如果a速度是b的2倍,那麼,當a到達終點的時候,b剛好到中間位置(這種思想很重要)

注:延伸:「刪除單鏈表的中間元素」,道理相同,只要找出,刪除該結點即可。

#include

#include

const int maxsize = 101;

using namespace std;

typedef struct listnodelistnode;

void findmidlist(listnode *l)

else

}coutwhile(p != null)

}int main()

r->next = null;

findmidlist(a);

//print(a);

return 0;

}

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

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

查詢單鏈表中間元素

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

取得單鏈表中間元素

配套的單鏈表在另一篇部落格。核心問題就是下面的那個while判斷條件,和最下面的奇數鍊錶和偶數鍊錶的問題。然後是判斷單鏈表的元素個數是奇數還是偶數的問題,觀察 畫的表。當元素個數為奇數的時候,first停止時,second位置正好就是中間的位置,問題是元素個數為偶數的時候,first停止時,中間有兩...