Lever's Castle

24. 两两交换链表中的节点

March 23, 2020

https://leetcode-cn.com/problems/swap-nodes-in-pairs/

解:

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func swapPairs(head *ListNode) *ListNode {
    if head == nil || head.Next == nil {
        return head
    }
    res := head.Next
    head.Next = swapPairs(res.Next)
    res.Next = head

    return res
}

题目比较简单,遍历链表并交换前后节点即可。这里我使用了递归的方式,这样不需要区分奇偶节点,每次只交换 head 和 head.Next,后面的链表递归到下一轮做。


Lever

痕迹
没有过去,就没法认定现在的自己