Skip to content

Latest commit

 

History

History
28 lines (23 loc) · 806 Bytes

24.md

File metadata and controls

28 lines (23 loc) · 806 Bytes
title date
24. 两两交换链表中的节点
2020-03-23T21:49:00.000Z

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,后面的链表递归到下一轮做。