日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

对单链表反转链表

發(fā)布時間:2023/11/28 生活经验 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对单链表反转链表 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
有一單鏈表,節(jié)點定義如下,試將此單鏈表反轉(zhuǎn)
struct Node {int data;Node* next;
};

??相信大家在平時的考試或者面試中經(jīng)常會碰到此類反轉(zhuǎn)單鏈表的題目,遇到這類問題如何應對呢?

初始狀態(tài)

Created with Rapha?l 2.2.0Node1Node2Node3

反轉(zhuǎn)后

Created with Rapha?l 2.2.0Node3Node2Node1

??下面且聽我一點一點分解:

先寫一個大家都會的遍歷單鏈表的代碼段

Node* p = head;
while(p) 
{//處理節(jié)點p	p = p->next;
}

試想一下,我們目標是反轉(zhuǎn),也就是說 p->next->next需要指向 p, 觀察一下上面代碼,每次得到p但是這個p需要下一個循環(huán)才能指向,也就是p->next->next,很自然想到:
需要一個臨時變量備份p,取last=nullptr
循環(huán)內(nèi)需要更新p->next, 執(zhí)行l(wèi)ast, 因此需要臨時變量備份p->next, 因為這個值需要賦值給p,實現(xiàn)繼續(xù)while循環(huán)
代碼如下:

Node* reverse(Node* head)
{Node* last = nullptr;Node* p = head;while(p){Node* t = p->next;p->next = last;last = p;p= t;	}return last;
}

總結(jié)

鏈表是一種常見的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),是一種線性表,是實現(xiàn)棧和隊列的基礎(chǔ),應用非常廣泛,我們必須非常熟悉掌握鏈表的操作。單鏈表是鏈表中比較簡單的形式,反轉(zhuǎn)單鏈表操作,需要掌握鏈表的遍歷和拆合節(jié)點操作,實現(xiàn)時候注意指針指向必要時需要增加臨時變量存儲,防止造成循環(huán)。

總結(jié)

以上是生活随笔為你收集整理的对单链表反转链表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。