LeetCode.206翻转链表_出现率最高的题_最详细解析

87 阅读1分钟

LeetCode.206翻转链表

先看图,尽量自己画一遍

2551681664010_.pic_hd.jpg

2561681664015_.pic_hd.jpg

2571681664018_.pic_hd.jpg

  1. head负责存当前的链表
  2. pre负责存当前的链表上一个的链表(也就是你期望翻转后的下一个链表)
  3. next负责存当前的链表的下一个链表,为了移动head去存

Golang代码

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func reverseList(head *ListNode) *ListNode {
    var pre *ListNode
    var next *ListNode

    for head != nil {
        next = head.Next
        head.Next = pre
        pre = head
        head = next
    }

    return pre
}