这道题的解法也很经典,执行效率也很不错
提交结果.png
class Solution:
def swapPairs(self, head: ListNode) -> ListNode:
# 给定 1->2->3->4, 你应该返回 2->1->4->3.
# 递归。下面这种递归的写法我有点难以理解。也许是命名,也许是写法上。
# 1. 找终结条件
# if not head or not head.next:
# return head
# first = head
# second = head.next
# # 3. 单次递归的过程。
# first.next = self.swapPairs(second.next)
# second.next = first
# return second # 2. 找返回值。应该是已经交换完成后的子链表。
# 2. 另一种递归的写法,我觉得是很清晰明了。
if not head or not head.next:
return head
else:
head, head.next, head.next.next = head.next, head, self.swapPairs(head.next.next)
return head
网友评论