给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

示例:

给定 1->2->3->4, 你应该返回 2->1->4->3.

解题思路:使用递归算法:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = Noneclass Solution:def swapPairs(self, head: ListNode) -> ListNode:if not head or not head.next:  # 如果当前节点为空,或者当前节点没有后节点,则直接返回当前节点return headfirst = head  # 对当前节点和当前节点的下一个节点进行交换second = head.nextfirst.next = self.swapPairs(second.next)  # 对当前节点的下下个结点使用递归second.next = firstreturn second

解法思路:使用递归算法:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = Noneclass Solution:def swapPairs(self, head: ListNode) -> ListNode:dummy = ListNode(-1)  # 创建新的节点,用于连接头节点dummy.next = headprev = dummy  # 要交换的节点的上一个节点while head and head.next:first = headsecond = head.nextfirst.next = second.next  # 进行节点的交换second.next = firstprev.next = secondhead = first.next  # 要交换的节点进行更新prev = first  # 要交换的节点的上一个节点进行更新return dummy.next

leetcode —— 24. 两两交换链表中的节点相关推荐

  1. Leetcode(24)——两两交换链表中的节点

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

  2. Java实现 LeetCode 24 两两交换链表中的节点

    24. 两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3-&g ...

  3. LeetCode 24:两两交换链表中的节点、1662. 检查两个字符串数组是否相等

    今天一道是单链表一道是String类的 一:LeetCode 24:两两交换链表中的节点 先来看一下题目信息 索引 题目意思就是把一个链表中的两两节点进行交换,题目给的例子是4个节点,是偶数个,两两节 ...

  4. LeetCode 23合并K个升序链表24两两交换链表中的节点

    维护不易,点赞再看,感谢支持 合并K个升序链表 题目描述 给你一个链表数组,每个链表都已经按升序排列. 请你将所有链表合并到一个升序链表中,返回合并后的链表. 示例 1: 输入:lists = [[1 ...

  5. LeetCode 24.两两交换链表中的节点 C语言

    题目 24.两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3- ...

  6. 24. 两两交换链表中的节点-两两反转链表-LeetCode

    一.题目 二.思路 1.采用递归的方式 2.可以通过递归的方式实现两两交换链表中的节点. 递归的终止条件是链表中没有节点,或者链表中只有一个节点,此时无法进行交换. 如果链表中至少有两个节点,则在两两 ...

  7. LeedCode 24:两两交换链表中的节点

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

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

    24. 两两交换链表中的节点 思路:使用一个头节点,然后用cur指针指向头 /*** Definition for singly-linked list.* struct ListNode {* in ...

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

    24. 两两交换链表中的节点 方法一:迭代,虚拟头结点 class Solution {public ListNode swapPairs(ListNode head) {ListNode dummy ...

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

    24. 两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换). 示例 1: 输入:head = [1 ...

最新文章

  1. BitMap 原理代码记录
  2. HTML5本地存储——Web SQL Database
  3. 三维重建19:锯齿排序
  4. 取sql数据乱码_不基于备份和表,生产系统数据误删就能完全恢复
  5. CVPR2020 夜间目标检测挑战赛冠军方案解读
  6. 28. 智慧医疗--AI将成为医生的好帮手
  7. 多文件结构和编译预处理命令
  8. Aspose.Words从零创建OOXML图表
  9. 帆软连接数据库的步骤
  10. 德勤:制造业企业数字化转型方案(PPT)
  11. 浏览器被流氓软件修改了主页怎么办?
  12. 【Matlab-NURBS工具箱简要教程及实例 】
  13. 面向对象[方法]定义一个长方形类,定义 求周长和面积的方法
  14. Js基础引导(二)——语法
  15. 红糖水白糖水的转换--郝汉森
  16. 百度收录静态html吗,百度收录越多,网站排名就越高吗?
  17. Android 使用ADB命令向上滑动解锁
  18. 网页全终端安防视频流媒体播放器EasyPlayer.js如何实现在web浏览器播放H.265编码视频?
  19. win7安装android驱动失败怎么办,Win7蓝牙驱动安装失败的原因分析与解决方法
  20. dubbo学习(一)dubbo简介与原理

热门文章

  1. tomcat 5 comcat 6 区别
  2. 80年代出生人坦白十大尴尬事80一代全搜集
  3. 面试:Zookeeper
  4. 图片服务 - thumbor自定义检测
  5. PicGo+码云Gitee建立国内高速图床
  6. C#LeetCode刷题之#226-翻转二叉树(Invert Binary Tree)
  7. C#LeetCode刷题-堆
  8. Jmeter获取性能指标
  9. 自己搭建mysql服务要知道的二三事
  10. 如何在React中使用功能组件