力扣链接:
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
}

LabRat
1 声望1 粉丝