leetcode24 链表节点反转
递归方法与非递归方法
# 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