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

2021-09-09 09:12:56 字數 1007 閱讀 6961

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

/*

struct listnode

};*/

通過的**:修改鍊錶的結構

/*

struct listnode

};*/

class solution

return preversehead;}};

原來:1->2->3 

反**1

2、定義乙個鍊錶b每次存放鍊錶a下乙個結點後面的子鍊錶

3、將當前結點指向上乙個結點

迴圈操作即可

注意的事項是:相當於是原煉表上執行反轉操作 ,不過還定義了乙個存放子鍊錶的鍊錶b

最後輸出反轉後的頭結點

特殊情況是:當結點為空則返回null

class solution 

};

參考:

從倒數第二個遞迴開始執行後面的語句:phead->next->next=phead; phead->next=null; 

換種方式描述是:phead是遞迴函式的引數,是當前要處理的節點,對應鍊錶的倒數第二個節點指標,phead->next是最後乙個 節點的指標,命名為lastnode,(lastnode)->next = phead,phead->next = null 

從倒數第二個遞迴開始節點指標依次出棧,每次修改當前節點的下乙個節點指向自己,然後自己指向空指標,一直到當前節點為第乙個結點firstnode,(firstnode->next)->next = firstnode, firstnode->next = nullptr。

理解:相當於實現倒數第乙個結點指向倒數第二個結點。然後遞迴,倒數第2指向倒數第三個結點。最後實現鍊錶反轉。相當於出棧

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

方法一 利用三個指標進行反轉 注 考慮鍊錶斷開問題 頭結點為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 更改next指標域法。當沒有節點或者只有乙個結點時,直接返回這個節點 否則至少有兩個節點時,用三個指標n1,n2,n3,n1指向第乙個節點,n2指向第二個節點,n3指向第三節點 可能為空 每次修改n2的next讓其指向n1,然後利用n...