递归方法与非递归方法
# Definition for singly-linked list.
# 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 ==None or head.next == None:
# return head
# node1=head
# node2=head.next
# node1.next=node2.next
# node2.next=node1
# node1.next=self.swapPairs(node1.next)
# return node2
#另一种简洁的写法
# if not head or not head.next:
# return head
# newHead = head.next
# head.next = self.swapPairs(newHead.next)
# newHead.next = head
# return newHead
#非递归
res=ListNode(0)
res.next=head
temp=res
while temp.next!=None and temp.next.next!=None:
node1=temp.next
node2=temp.next.next
temp.next=node2
node1.next=node2.next
node2.next=node1
temp=node1
return res.next

京公网安备 11010502036488号