赞
踩
目录
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
示例 1:
输入:head = [1,2,3,4]
输出:[2,1,4,3]
示例 2:
输入:head = []
输出:[]
示例 3:
输入:head = [1]
输出:[1]
提示:
链表中节点的数目在范围 [0, 100] 内
0 <= Node.val <= 100
利用一个节点连接一对节点的后者,然后将前者连在后者后面即可。
以示例1为例:(①→②→③→④)==>(②→①→④→③)
- # Definition for singly-linked list.
- class ListNode:
- def __init__(self, val=0, next=None):
- self.val = val
- self.next = next
-
- def __repr__(self):
- return str(self.val)
- class Solution:
- def swapPairs(self, head: ListNode) -> ListNode:
- first = ListNode(0)
- first.next = head
- p1 = first
- while p1.next is not None and p1.next.next is not None:
- p2 = p1.next
- p1.next = p2.next
- p2.next = p2.next.next
- p1.next.next = p2
- p1 = p2
- return first.next
-
-
- if __name__ == '__main__':
- a = ListNode(1)
- a.next = ListNode(2)
- a.next.next = ListNode(3)
- a.next.next.next = ListNode(4)
-
- s = Solution()
- ans = s.swapPairs(a)
- print(ans)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。