劍指Offer 反轉鍊錶

2021-08-19 15:19:33 字數 383 閱讀 5154

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。

可以使用3個指標,分別指向當前遍歷到的結點(指標cur)、它的前乙個結點(指標pre)及後乙個結點(指標next)。在遍歷過程中,首先記錄當前節點的後乙個節點,然後將cur->next=pre,再令pre=cur,cur=next,如此反覆,直到當前節點的後乙個節點為null時,則代表當前節點時反轉後的頭結點了。

/*

struct listnode

};*/

class solution

return pre;

}};

反轉後,原本的頭結點變為最後乙個節點,要令其next指向null

注意輸入的煉表頭指標為nullptr或者整個鍊錶只有乙個節點的情況

劍指offer 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。方法1 將單鏈表儲存為陣列,然後按照陣列的索引逆序進行反轉。方法2 使用三個指標遍歷單鏈表,逐個鏈結點進行反轉。方法3 從第2個節點到第n個節點,依次逐節點插入到第1個節點 head節點 之後,最後將第乙個節點挪到新錶的表尾。public class l...

劍指offer 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。1.非遞迴 struct listnode class solution listnode ppre null listnode p phead listnode pnext null while p null else p pnext return p...

《劍指offer》 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。之前錯誤的寫法,一直不明白 原因是移位的時候,pcurr移到下一位時,裡面的值已經變成反向指標了,所以不能成功移動,就迴圈巢狀進去了,所以還需要乙個變數pnext來儲存移位前的值。struct listnode class solution phead ...