206. 反转链表

题目#

反转一个单链表。

示例:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题?

思路#

迭代解法,直接看代码吧。

代码#

func reverseList(head *ListNode) *ListNode {
var node *ListNode
for head != nil {
// 改变前后关系
// 把 1->2->3 变成 1<-2<-3
next := head.Next
head.Next = node
node = head
head = next
}
// 原本的尾节点现在刚好是头节点
return node
}
Last updated on