Skip to content

Latest commit

 

History

History
37 lines (35 loc) · 603 Bytes

206反转链表.md

File metadata and controls

37 lines (35 loc) · 603 Bytes

双指针:

/**
 * 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 {
        tmp := cur.Next
        cur.Next = prev
        prev = cur
        cur = tmp
    }
    return prev
}

递归:

func reverseList(head *ListNode) *ListNode {
    return help(nil, head)
}

func help(prev, cur *ListNode) *ListNode {
    if cur == nil {
        return prev
    }
    tmp := cur.Next
    cur.Next = prev
    return help(cur, tmp)
}