題目描述
輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值(用陣列返回)。我的解題思路:遍歷鍊錶,將其值全部放到陣列內,再反轉陣列示例 1:
輸入:head = [1,3,2]
輸出:[2,3,1]
限制:0 <= 鍊錶長度 <= 10000
func reverseprint(head *listnode) int
var lenint = len(array)-1
for i:=0;i官方思路:用棧暫存鍊錶值,再遍歷棧放入陣列,利用棧先入後出的特性
func reverseprint(head *listnode) int
res := list.new()
for head != nil
ret := int{}
for e := res.front(); e != nil; e = e.next()
return ret
}
其他思路一:遍歷鍊錶記錄鍊錶長度,再次遍歷鍊錶從陣列尾部開始新增值
func reverseprint(head *listnode) int
count := 0
newhead := head
for head != nil
res := make(int, count)
i := 0
for newhead != nil
return res
}
其他思路二:反轉鍊錶,再遍歷鍊錶放入陣列
func reverseprint(head *listnode) int
var newhead *listnode
res := int{}
for head != nil
for newhead != nil
return res
}
複雜性分析時間複雜度:o(n)。正向遍歷一遍鍊錶,然後從棧彈出全部節點,等於又反向遍歷一遍鍊錶。
空間複雜度:o(n)。額外使用乙個棧儲存鍊錶中的每個節點。
劍指Offer刷題筆記 從頭到尾列印列表
輸入乙個鍊錶,按煉錶值從尾到頭的順序返回乙個arraylist。lis oe 這個類儲存的是鍊錶中的乙個節點,它的val屬性儲存的是本節點的值,next屬性儲存的它連線的下乙個節點 下乙個節點同樣是乙個同樣格式的類 coding utf 8 class listnode def init self,...
劍指offer 6 從頭到尾列印鍊錶
輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值 用陣列返回 示例 1 輸入 head 1,3,2 輸出 2,3,1 th 逆序列印 我們可以將鍊錶loop一遍,push到棧中。然後pop出 因為棧是先進後出 所有最後順序就是逆序的順序。這裡建議push最好是val push node的話 占用...
劍指offer系列0 替換空格 從頭到尾列印鍊錶
這是最前面的幾個題,我之前寫在github上了,現在為了統一補回來。面試題4 替換空格 字串的名字是乙個指標變數,裡面存的內容是其第乙個字元的位址。如字串a 10 則 a,a得到的均相同,都是a陣列的第乙個元素的位址。1 include2 using namespace std 3class sol...