当前位置:   article > 正文

两两交换链表中的节点Python解法_self.val = val # self.next = next

self.val = val # self.next = next

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

示例 1:

解析:创建一个头指针,然后用链表的属性对头指针后两个值进行调换,然后切换头指针指向。

  1. # Definition for singly-linked list.
  2. # class ListNode(object):
  3. # def __init__(self, val=0, next=None):
  4. # self.val = val
  5. # self.next = next
  6. class Solution(object):
  7. def swapPairs(self, head):
  8. """
  9. :type head: ListNode
  10. :rtype: ListNode
  11. """
  12. res = ListNode(next=head) # 创建头节点,并且让头节点的next指针指向表头
  13. pre = res # 头指针指向头节点
  14. while pre.next and pre.next.next: # 判断头指针后面是否存在两个值
  15. cur = pre.next
  16. post = pre.next.next
  17. cur.next = post.next # 切换两个节点的位置
  18. post.next = cur
  19. pre.next = post
  20. pre = pre.next.next # 切换头指针的位置
  21. return res.next

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/infabc/article/detail/61258
推荐阅读
相关标签
  

闽ICP备14008679号