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

2021-06-09 18:04:32 字數 794 閱讀 4990

問題:找出單鏈表的中間元素

思路:快慢指標。

快指標每次走兩步,慢指標每次走1步。快指標走到頭時,慢指標所指即為中間結點。

如果結點個數n為偶數,則中間結點為第n/2個結點。

// linktable.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include #include using namespace std;

//鍊錶的結構體

struct node

;//2,找第4個結點

struct node * create( string & str_link )

return phead;

}void out_link( struct node * phead )

cout << endl;

}struct node * find_mid_node( struct node * phead )

return pslow;

}void test()

{ string str;

cin >> str;

struct node *phead = create( str );

cout << "the link is : ";

out_link( phead );

struct node *pnode = find_mid_node( phead );

if( pnode )

cout << "the mid node's value is : " << pnode->val <

3 找出單鏈表的中間元素

分析 兩個人賽跑,如果a速度是b的2倍,那麼,當a到達終點的時候,b剛好到中間位置 這種思想很重要 注 延伸 刪除單鏈表的中間元素 道理相同,只要找出,刪除該結點即可。include include const int maxsize 101 using namespace std typedef ...

查詢單鏈表中間元素

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

取得單鏈表中間元素

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