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

2021-09-20 13:05:04 字數 592 閱讀 5861

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

分析:方法(1):更改next指標域法。當沒有節點或者只有乙個結點時,直接返回這個節點;否則至少有兩個節點時,用三個指標n1,n2,n3,n1指向第乙個節點,n2指向第二個節點,n3指向第三節點(可能為空),每次修改n2的next讓其指向n1,然後利用n3儲存下乙個節點,然後利用n2移動n1和n2的相對位置(需要注意的是,最開始要將n1的next域置空,因為它反轉後要做尾節點)。

listnode* reverselist(listnode* phead) 

}return n1;

}

方法(2):頭插法。讓cur指向當前結點,並且儲存cur的下乙個節點,建立乙個新鍊錶的頭指標newnode,每次將cur拿下來頭插,頭插完後將newnode指標始終要做頭,直到cur為空,即原鍊錶結點被插完,此時newnode就是新鍊錶的頭。

listnode* reverselist(listnode* phead) 

return newnode;//當cur為空時,說明所有節點頭插完了,此時newnode就是新鍊錶的的頭

}

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭

方法一 利用三個指標進行反轉 注 考慮鍊錶斷開問題 頭結點為null 有乙個頭結點 listnode reverselist listnode phead listnode newphead null listnode node phead listnode pre null listnode ne...

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭

可以採用迭代法 new 乙個值為null 的新鍊錶,然後new乙個臨時temp鍊錶,這個temp主要用來head.next 與head之間的替換 首先讓head.next指向為null的新鍊錶 反轉後head為鍊錶末尾,head的後面為null才對 然後讓新鍊錶指向head,這樣null的上家就變成...

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

方法1 定義三個指標,整體右移,邊右移,邊翻轉,這樣保證不會斷鏈 listnode reverselist listnode phead 當只有兩個節點或當迴圈結束時,還剩最後乙個節點沒有翻轉 psecond next pfirst 翻轉 phead next nullptr 把原頭節點的next設...