剑指offer06.从尾到头打印链表
生活随笔
收集整理的這篇文章主要介紹了
剑指offer06.从尾到头打印链表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
劍指offer06.從尾到頭打印鏈表
- 1. 改變鏈表結構的解法
- 2.可以使用棧,遞歸,或者直接反向輸出數組
提示:
若是面試遇到此題,最好先向面試官確認是否可以改變鏈表的結構,
1. 改變鏈表結構的解法
我們可以想到,先反轉鏈表然后在一個一個的輸出
不熟悉反轉鏈表的建議先去看一下反轉鏈表
反轉鏈表的經典四句
t = pre.Next
pre.Next = cur
cur = pre
pre = t
2.可以使用棧,遞歸,或者直接反向輸出數組
遞歸有一個缺點是,當鏈表足夠長的時候,函數的調用棧可以會爆
所以不建議使用
棧的特點先進后出也可以實現但是Go語言中沒有現成的棧類型
需要自己實現比較麻煩,其他語言有棧的類型就比較方便
這里講解一下如何反向輸出數組
解題步驟 :
1.先遍歷鏈表統計出節點的個數count
2.再循環count次,將鏈表中的節點的data域依次加入到數組中
3.返回數組就成功實現了反轉輸出
注意數組下標不要越界哦 所以是count - 1
切片[]int是引用類型,零值為空所以可以返回nil
總結
以上是生活随笔為你收集整理的剑指offer06.从尾到头打印链表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剑指offer03.数组中重复的数字
- 下一篇: 剑指offer07.重建二叉树