單鏈表逆置(golang)

2021-10-23 00:15:40 字數 735 閱讀 4067

反轉乙個單鏈表。

示例:輸入: 1->2->3->4->5->null

輸出: 5->4->3->2->1->null

type listnode struct

遞迴解法

func

reverselist

(head *listnode)

*listnode

//1->2->3->4->5->nil

//根據上面的遞迴終止條件,這裡第一次返回的時候,返回的是最後乙個節點

//也就是cur = 5, head = 4, head.next = 5

cur :=

reverselist

(head.next)

= 5, 5.next = head(4)

//這樣子就完成了5->4, 同時原本的4->5

head.next.next = head

//將4->5變成4->nil

head.next =

nil//這裡的cur就永遠是最後乙個了,相當於新鍊錶的頭

return cur

}

非遞迴解法

func

reverselist

(head *listnode)

*listnode

return prev

}

單鏈表逆置

單鏈表逆置 include include define item num 10 typedef struct tagnode node node linklist create void linklist destroy node head void linklist print node hea...

單鏈表逆置

name 單鏈表逆置 author 巧若拙 date 22 11 14 16 13 description 分別用遞迴和非遞迴兩種方式實現單鏈表 不含頭結點 的逆置 include include include typedef char elemtype typedef int status 函式...

單鏈表逆置

最近在leetcode oj上刷題,將一些演算法題的解法記錄下來,也期待一些新的更好的方法。題目是這樣滴 206.reverse linked list reverse a singly linked list.hint a linked list can be reversed either it...