輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。
思路一:
思路二:
遞迴:利用遞迴走到鍊錶的末端,然後再更新每乙個節點的next值 ,實現鍊錶的反轉。
package linkedlist;
/** * 反轉鍊錶
* 輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。
*/public class solution35
/*** 迭代
** @param head
* @return
*/public listnode reverselist(listnode head)
//如果head為null的時候,pre就為最後乙個節點了,但是鍊錶已經反轉完畢,pre就是反轉後鍊錶的第乙個節點
//直接輸出pre就是我們想要得到的反轉後的鍊錶
return pre;
}public class listnode
}}
劍指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 ...