题目: https://leetcode.com/problems/swap-nodes-in-pairs/
难度 : Medium
一眼就知道这个用递归做,beats 96.06%
class Solution(object):
def swapPairs(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
if not head:
return None
if not head.next:
return head
tmp = head.next
head.next = self.swapPairs(head.next.next)
tmp.next = head
return tmp
或者用loop
做,每个node
关系要弄清楚, 又是巧用dummy
,dummy
大法对于nodeList
的题目简直无敌!!!🐂批, 但是只beats
了69.40%
class Solution(object):
def swapPairs(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
if head == None or head.next == None:
return head
dummy = ListNode(-1)
dummy.next = head
cur = dummy
while cur.next and cur.next.next:
next_one, next_two, next_three = cur.next, cur.next.next, cur.next.next.next
cur.next = next_two
next_two.next = next_one
next_one.next = next_three
cur = next_one
return dummy.next