[Go的算法实现]反转列表
Publish date: Aug 31, 2019
Last updated: Jun 14, 2020
Last updated: Jun 14, 2020
剑指Offer中问题16的go实现。
问题
输入一个链表,反转链表后,输出链表的所有元素。
思路
新建一个指针作临时存储用。
注意点
- 空链表
- 只有一个节点的链表
代码实现
package q016
type NodeList struct {
Value int
NextNode *NodeList
}
func Answer(head *NodeList) (target *NodeList) {
if head == nil || head.NextNode == nil {
return head
}
var tmpNode *NodeList
for head != nil {
next := head.NextNode
head.NextNode = tmpNode
tmpNode = head
head = next
}
return tmpNode
}