/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func reverseList(head *ListNode) *ListNode {
var prev *ListNode
cur := head
for cur != nil {
NextTmp := cur.Next
cur.Next = prev
prev = cur
cur = NextTmp
}
return prev
}
递归做法:
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func reverseList(head *ListNode) *ListNode {
return Reverse(nil, head)
}
func Reverse(Prev *ListNode, Cur *ListNode) *ListNode {
if Cur == nil {
return Prev
}
Ne := Cur.Next
Cur.Next = Prev
return Reverse(Cur, Ne)
}