关于golang:Leetcode专题链表206反转链表

力扣链接:
https://leetcode-cn.com/probl…
解题思路:

  1. 链表题目在做的时候,应用一个虚构头节点是罕用的做法,尤其是须要返回新的头节点时
  2. 这道题的不同点在于,只是返回翻转的节点,所以头节点肯定是之前的最初一个节点,然而翻转之前的节点须要指向空,所以新建一个空的新节点
  3. 本题的解法为双指针法:建设两个节点:pre和cur
type ListNode Struct {
    val int
    next *ListNode
}
func reverseList(head *ListNode) *ListNode {
    pre := &ListNode{}
    cur := head
    for cur != nil {
        next := cur.Next
        cur.Next = pre
        pre = cur
        cur = next
    }
    return pre
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理