leetcode_0024 两两交换链表中的节点

82 阅读1分钟

要求:

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

  • 示例 1

image.png

 输入:head = [1,2,3,4]
 输出:[2,1,4,3]
  • 示例 2
 输入:head = []
 输出:[]
  • 示例 3
 输入:head = [1]
 输出:[1]

详解代码

 # class ListNode:
 #     def __init__(self, val=0, next=None):
 #         self.val = val
 #         self.next = next
 class Solution:
     def swapPairs(self, head: ListNode) -> ListNode:
         if head is None:
             return head
         
         ref = head
 ​
         while ref is not None and ref.next is not None:
             ref.val,ref.next.val = ref.next.val,ref.val
             ref = ref.next.next
         
         return head

image.png 解题思路:注意这个部分,python的交换值的方式ref.val,ref.next.val = ref.next.val,ref.val