一、题目

二、思路

1、采用递归的方式
2、可以通过递归的方式实现两两交换链表中的节点。

递归的终止条件是链表中没有节点,或者链表中只有一个节点,此时无法进行交换。

如果链表中至少有两个节点,则在两两交换链表中的节点之后,原始链表的头节点变成新的链表的第二个节点,原始链表的第二个节点变成新的链表的头节点。链表中的其余节点的两两交换可以递归地实现。在对链表中的其余节点递归地两两交换之后,更新节点之间的指针关系,即可完成整个链表的两两交换。

用 head 表示原始链表的头节点,新的链表的第二个节点,用 newHead 表示新的链表的头节点,原始链表的第二个节点,则原始链表中的其余节点的头节点是 newHead.next。令 head.next = swapPairs(newHead.next),表示将其余节点进行两两交换,交换后的新的头节点为 head 的下一个节点。然后令 newHead.next = head,即完成了所有节点的交换。最后返回新的链表的头节点 newHead。

三、代码

class Solution {public:ListNode* swapPairs(ListNode* head) {if(head==nullptr || head->next==nullptr){return head;}ListNode *newhead=head->next;//head链接的是完成反转的后面的链表head->next=swapPairs(newhead->next);//新链表指向headnewhead->next=head;//返回新链表节点return newhead;}
};

24. 两两交换链表中的节点-两两反转链表-LeetCode相关推荐

  1. 代码随想录Day04 | LeetCode24. 两两交换链表中的节点、LeetCode19. 删除链表的倒数第N个节点、LeetCode160. 链表相交、LeetCode142. 环形链表Ⅱ

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

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

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

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

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

  4. 链表——24. 两两交换链表中的节点

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

  5. C++ 两两交换链表中的节点

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

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

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

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

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

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

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

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

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

最新文章

  1. linux php目录是否存在,PHP判断文件或者目录是否可写,兼容windows/linux系统
  2. 安装QQ时出现无法访问WINDOWS安装服务。
  3. php本地安装帝国视频,帝国cms如何播放视频
  4. 帝国cms内部会员组的使用方法以及应用场景
  5. 误区30日谈16-20
  6. 冒泡排序、选择排序和插入
  7. matlab菲涅尔衍射_有问必答——SYNOPSYS安装体验课堂——可以设计菲涅尔透镜吗?...
  8. java 左移 返回值_java左移右移运算符详解
  9. 【UI插件】简单的日历插件(下)—— 学习MVC思想
  10. 整数反转Java_详解 LeetCode_007_整数反转(Java 实现)
  11. LVS/NAT的配置和应用
  12. 绿盾有办法:WPS文档加密的三板斧
  13. 12月第1周网络安全报告:境内95.8万主机感染病毒
  14. 哈希表、哈希桶数据结构以及刨析HashMap源码中哈希桶的使用
  15. dll注入之SetWindowsHookEx 键盘消息钩子
  16. Java学习资料(四)——尚学堂马士兵视频
  17. 扩展模块已停止工作怎么解决_菲尼克斯Phoenix控制器电源模块维修检测免费
  18. java中级程序员_java中级程序员路线图(黑马)
  19. 华为nova 3e,重新编译内核文件,解除ptrace限制,以使用Frida
  20. 工作八年的程序员,却拿着毕业三年的工资,再不开窍就真晚了...

热门文章

  1. 优麒麟系统安装MySQL_安装优麒麟(ubuntukylin)操作系统详解
  2. HEU 2010 France '98
  3. 【读书向】阿里云天池大赛赛题解析——可视化
  4. Mutual Graph Learning for Camouflaged Object Detection阅读笔记
  5. sql服务器状态已停止,SQL SERVER 2008 SSMS - SQL Server Management Studio 已停止工作
  6. android -- 蓝牙 bluetooth解读
  7. 16、Kanzi插件——通过Kanzi Engine插件创建自定义动作+代码解析
  8. 电路模电数电课程中卡诺图知识点(包括化简原则和步骤)
  9. Word文档生成神器:开源项目poi.tl使用介绍
  10. 你值得拥有!-阿里P8架构师荣耀典藏:Java多线程与Socket实战微服务框架笔记