反轉鍊錶2020 11 23

2021-10-10 19:05:44 字數 627 閱讀 8549

題目:反轉鍊錶

描述:輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。

分析:(1)建立三個指標pre、cur、nex,使cur=head,其他兩個指標賦空

(2)核心思想是讓1->null,2->1,3->2,4->3,5->4…以此類推,此時就需要使 用上一條建立的三個指標和乙個while迴圈,這樣就可以直接反轉乙個單鏈表了

(3)迴圈while(cur),第一步讓nex指標等於cur->nex(起乙個儲存下乙個結點的作用);然後第二步是讓cur指向pre(未反轉鍊錶的第乙個節點的下個指標指向已反轉鍊錶的最後乙個節點),因為一開始就給pre賦空了,所以第乙個節點是指向null;第三步是讓三個指標依次都後移一步,操作下乙個未反轉鍊錶的第乙個節點,迴圈完成後鍊錶就被反轉了

(4)最後返回的一定是pre,因為進行到最後乙個迴圈後,cur指向null,pre指向原鍊錶的最後乙個節點,即在反轉過後的煉表裡指向第乙個節點,相當於原鍊錶的head指標

struct listnode* reverselist(struct listnode* phead )

while(cur!=null)

return pre;

在這裡插入**片

鍊錶 反轉鍊錶

問題 兩兩交換鍊錶中的節點 問題 k 個一組翻轉鍊錶 問題鏈結 利用棧先進後出的特性,遍歷鍊錶,將每個結點加入棧中,最後進行出棧操作,先出棧的結點指向臨近的後出棧的結點。definition for singly linked list.struct listnode class solution ...

反轉鍊錶與分組反轉鍊錶

經典的反轉鍊錶,先上 public class listnode public class printlist system.out.println public class reverse public listnode reverse listnode root listnode pre nul...

鍊錶 鍊錶反轉I

package com.hnust.reversal public class listnode public listnode int value,listnode next override public string tostring 我們可以通過把鍊錶中鏈結節點的指標反轉過來,從而改變鍊錶的...