go 劍指offer06 從頭到尾列印鍊錶

2021-10-11 20:54:55 字數 1157 閱讀 8130

題目描述

輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值(用陣列返回)。

示例 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...