力扣链接:
https://leetcode-cn.com/probl…
解题思路:
- 链表题目在做的时候,应用一个虚构头节点是罕用的做法,尤其是须要返回新的头节点时
- 这道题的不同点在于,只是返回翻转的节点,所以头节点肯定是之前的最初一个节点,然而翻转之前的节点须要指向空,所以新建一个空的新节点
- 本题的解法为双指针法:建设两个节点: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
}