LeetCode206.反转链表Golang版
1. 问题描述
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
2. 思路
- 声明一个节点pre,用来表示当前节点的前一个节点
- 当head不为空,执行循环
2.1. 把当前节点的Next赋值给一个临时变量
2.2. 当前节点的Next,指向pre
2.3. 当前节点右移,pre右移 - 返回pre
3. 代码
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func reverseList(head *ListNode) *ListNode {
prev := &ListNode{}
current := &ListNode{}
prev = nil
current = head
for current != nil {
temp := current.Next
current.Next = prev
prev = current
current = temp
}
return prev
}