题目

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

输入:head = [1,2,3,4]
输出:[2,1,4,3]
示例 2:
输入:head = []
输出:[]
示例 3:
输入:head = [1]
输出:[1]
提示:
链表中节点的数目在范围 [0, 100] 内
0 <= Node.val <= 100
来源:力扣(LeetCode)

解题思路

  这道题是苏州大学计算机某一年从力扣摘出来的专业课题目,要求用递归来实现。如果是以递归实现的话题目就不能想的太深入,考虑示例1,仅仅盯住前两个元素进行操作即可,主题的思想可以分为将链表头部两个元素交换位置然后保证原来的head下一个连的是剩下的链表即可。

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def swapPairs(self, head: ListNode) -> ListNode:if not head or not head.next:return headp=head.nexthead.next=self.swapPairs(p.next)p.next=headreturn p


  当然,一般地递归方法都能改造成迭代法,这样可能性能会提高。

LeetCode中等题之两两交换链表中的节点相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

  7. Python实现两两交换链表中的节点

    题目描述 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. Leetcode原题地址:https://leetcode-cn. ...

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

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

  9. 想要精通算法和SQL的成长之路 - 两两交换链表中的节点

    想要精通算法和SQL的成长之路 - 两两交换链表中的节点 前言 一. 两两交换链表中的节点 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 两两交换链表中的节点 原题链接 给你一个链表,两两 ...

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

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

最新文章

  1. 电脑右键没有新建按钮解决办法
  2. matlab在图片上显示文字颜色,科学网-解决matlab saveas printf保存图片时 colorbar中的字体颜色发生改变-肖鑫的博文...
  3. 九月计划 附:《使用 Microsoft .NET 的企业解决方案模式》
  4. linux 如何在命令行下改系统时间
  5. POJ 1323 Game Prediction#贪心
  6. (74)FPGA面试题-Verilog序列发生器,产生 10110 的序列
  7. Git 更改远程地址
  8. Hibernate占位符?和:及JPA
  9. Android中ListView的使用步骤
  10. 矩阵运算_Sophus库的使用
  11. 最优化学习 约束优化问题
  12. wav格式怎么转换成flac?
  13. 【转】代价曲线的理解
  14. CC2530基础实验二:电源管理与睡眠定时器
  15. 用javascript访问操作iframe中的dom对象
  16. 工作,究竟意味着什么
  17. 软件测试中的正交缺陷分析总结,正交缺陷分类(ODC)流程简介及应用经验分享(上)...
  18. ibm服务器3650换硬盘内存,X3650更换硬盘
  19. excel批量制作条形码_如何在Microsoft Excel中制作条形图
  20. 全面解析JavaScript中对于字符串子串的查询方法

热门文章

  1. 手动将jar包导入pom依赖,让jar包适配本地maven项目
  2. 2021-2027年中国智能马桶盖行业市场研究及前瞻分析报告
  3. 文本框可编辑查看页面
  4. Pytorch的网络结构可视化(tensorboardX)(详细)
  5. Python错误:AttributeError: 'generator' object has no attribute 'next'解决办法
  6. 自定义算子高性能开发
  7. 深度学习Anchor Boxes原理与实战技术
  8. 深度学习LiDAR定位:L3-Net
  9. Android的数据存储方式
  10. 自己做网站服务器需要买吗,自己做网站要买服务器