每日算法之两两交换链表中的节点

题目描述

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

示例 1:
在这里插入图片描述

输入:head = [1,2,3,4]
输出:[2,1,4,3]
示例 2:
输入:head = []
输出:[]
示例 3:
输入:head = [1]
输出:[1]

提示:

  • 链表中节点的数目在范围 [0, 100] 内
  • 0 <= Node.val <= 100

思路

需要的留言,挺简单的其实

迭代解法

class Solution:
    def swapPairs(self, head: Optional[ListNode]) -> Optional[ListNode]:
        node0 = dummy = ListNode(next=head)  
        node1 = head
        while node1 and node1.next:  
            node2 = node1.next
            node3 = node2.next

            node0.next = node2  
            node2.next = node1  
            node1.next = node3 

            node0 = node1  
            node1 = node3  
        return dummy.next  



递归解法

class Solution:
    def swapPairs(self, head: Optional[ListNode]) -> Optional[ListNode]:
        if head is None or head.next is None:  
            return head 

        node1 = head
        node2 = head.next
        node3 = node2.next

        node1.next = self.swapPairs(node3)  
        node2.next = node1 
        return node2 

相关推荐

  1. 交换节点

    2024-04-28 00:38:03       57 阅读
  2. leetcode24. 交换节点

    2024-04-28 00:38:03       66 阅读
  3. LC24. 交换节点

    2024-04-28 00:38:03       69 阅读
  4. LeetCode [24] 交换节点

    2024-04-28 00:38:03       67 阅读
  5. 【Leetcode】24. 交换节点

    2024-04-28 00:38:03       64 阅读
  6. LeetCode24.交换节点

    2024-04-28 00:38:03       66 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-28 00:38:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-28 00:38:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-28 00:38:03       82 阅读
  4. Python语言-面向对象

    2024-04-28 00:38:03       91 阅读

热门阅读

  1. 【leetcode】对撞指针题目总结

    2024-04-28 00:38:03       32 阅读
  2. OpenCV如何使用分水岭算法进行图像分割

    2024-04-28 00:38:03       36 阅读
  3. 【贪心算法】Leetcode 55. 跳跃游戏【中等】

    2024-04-28 00:38:03       32 阅读
  4. 【运维】Gitlab备份

    2024-04-28 00:38:03       34 阅读
  5. 探究C++20协程(4)——协程中的调度器

    2024-04-28 00:38:03       25 阅读
  6. 清华大学 【战略管理的逻辑】全6讲笔记

    2024-04-28 00:38:03       24 阅读
  7. 【MySQL】数据库概述

    2024-04-28 00:38:03       32 阅读
  8. 【MySQL】基础知识

    2024-04-28 00:38:03       28 阅读
  9. k8s部署grafana

    2024-04-28 00:38:03       28 阅读
  10. Swift 中的条件语句:if 和 else

    2024-04-28 00:38:03       27 阅读
  11. 优雅实现uniapp返回上一页传参

    2024-04-28 00:38:03       32 阅读
  12. 通过idea插件一键将jar包发布到阿里云服务器部署

    2024-04-28 00:38:03       26 阅读
  13. 要搭建基于Python、Django和Oracle的框架怎么搭

    2024-04-28 00:38:03       30 阅读