LeetCode 24. 两两交换链表中的节点

题目

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


方法
# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution(object):
    def swapPairs(self, head):
        dummy_head = ListNode(next = head)
        pre = dummy_head

        while pre.next and pre.next.next:
            curr = pre.next
            post = pre.next.next

            curr.next = post.next
            post.next = curr
            pre.next = post

            pre = pre.next.next
            
        return dummy_head.next
相关知识
  • 头指针:
    单链表中头指针指向第一个结点(即使头节点改变,头指针永远指向第一个节点)
参考

代码相关:https://programmercarl.com/0024.%E4%B8%A4%E4%B8%A4%E4%BA%A4%E6%8D%A2%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%9A%84%E8%8A%82%E7%82%B9.html
头指针:https://baike.baidu.com/item/%E5%A4%B4%E6%8C%87%E9%92%88/9794674?fr=aladdin

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容