1.这是一个反转链表 相邻两个节点 的题目。
24.Swap Nodes in Pairs.png题目的意思就是输入一个链表,然后将链表的相邻的两个节点进行反转.
2.题解:
我们的思路是:记录连续三个节点(pre,a,b) ,然后将后面两个节点a,b进行反转,并将第一个节点的next指向第三个节点b
代码有点简洁:
# 记录连续三个节点(pre,a,b) ,然后将后面两个节点a,b进行反转,
# 并将第一个节点的next指向第三个节点b
class Solution:
def swapPairs(self, head):
pre, pre.next = self, head
while pre.next and pre.next.next:
a = pre.next
b = a.next
pre.next, b.next, a.next = b, a, b.next
pre = a
return self.next
画图解释:
24.Swap Nodes in Pairs.png
3.完整代码
查看链接:
https://github.com/Wind0ranger/LeetcodeLearn/blob/master/1-List/24-Swap-Nodes-in-Pairs.py
网友评论