/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ funcreverseList(head *ListNode) *ListNode {
var prev *ListNode for head != nil { // next := head.Next // head.Next = prev // prev = head // head = next head.Next, prev, head = prev, head, head.Next } return prev }
递归YYDS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ funcreverseList(head *ListNode) *ListNode {
if head == nil head.Next == nil { return head } curr := reverseList(head.Next) head.Next.Next = head head.Next = nil return curr }