24. 两两交换链表中的节点-两两反转链表-LeetCode
一、题目
二、思路
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相关推荐
- 代码随想录Day04 | LeetCode24. 两两交换链表中的节点、LeetCode19. 删除链表的倒数第N个节点、LeetCode160. 链表相交、LeetCode142. 环形链表Ⅱ
LeetCode24. 两两交换链表中的节点 力扣题目链接 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换). 示例 ...
- Leetcode(24)——两两交换链表中的节点
Leetcode(24)--两两交换链表中的节点 题目 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换). 示例 1: ...
- 24. 两两交换链表中的节点
24. 两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换). 示例 1: 输入:head = [1 ...
- 链表——24. 两两交换链表中的节点
1 题目描述 两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换). 2 题目示例 示例 2: 输入 ...
- C++ 两两交换链表中的节点
C++ 两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即只能进行节点交换). 示例1 输入:head = [1, ...
- LeetCode-链表-24. 两两交换链表中的节点
24. 两两交换链表中的节点 思路:使用一个头节点,然后用cur指针指向头 /*** Definition for singly-linked list.* struct ListNode {* in ...
- 24.两两交换链表中的节点
24. 两两交换链表中的节点 方法一:迭代,虚拟头结点 class Solution {public ListNode swapPairs(ListNode head) {ListNode dummy ...
- LeetCode 24.两两交换链表中的节点 C语言
题目 24.两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3- ...
- LeedCode 24:两两交换链表中的节点
两两交换链表中的节点 题目描述: 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换). 链接: 24. 两两交换链表中的 ...
最新文章
- linux php目录是否存在,PHP判断文件或者目录是否可写,兼容windows/linux系统
- 安装QQ时出现无法访问WINDOWS安装服务。
- php本地安装帝国视频,帝国cms如何播放视频
- 帝国cms内部会员组的使用方法以及应用场景
- 误区30日谈16-20
- 冒泡排序、选择排序和插入
- matlab菲涅尔衍射_有问必答——SYNOPSYS安装体验课堂——可以设计菲涅尔透镜吗?...
- java 左移 返回值_java左移右移运算符详解
- 【UI插件】简单的日历插件(下)—— 学习MVC思想
- 整数反转Java_详解 LeetCode_007_整数反转(Java 实现)
- LVS/NAT的配置和应用
- 绿盾有办法:WPS文档加密的三板斧
- 12月第1周网络安全报告:境内95.8万主机感染病毒
- 哈希表、哈希桶数据结构以及刨析HashMap源码中哈希桶的使用
- dll注入之SetWindowsHookEx 键盘消息钩子
- Java学习资料(四)——尚学堂马士兵视频
- 扩展模块已停止工作怎么解决_菲尼克斯Phoenix控制器电源模块维修检测免费
- java中级程序员_java中级程序员路线图(黑马)
- 华为nova 3e,重新编译内核文件,解除ptrace限制,以使用Frida
- 工作八年的程序员,却拿着毕业三年的工资,再不开窍就真晚了...
热门文章
- 优麒麟系统安装MySQL_安装优麒麟(ubuntukylin)操作系统详解
- HEU 2010 France '98
- 【读书向】阿里云天池大赛赛题解析——可视化
- Mutual Graph Learning for Camouflaged Object Detection阅读笔记
- sql服务器状态已停止,SQL SERVER 2008 SSMS - SQL Server Management Studio 已停止工作
- android -- 蓝牙 bluetooth解读
- 16、Kanzi插件——通过Kanzi Engine插件创建自定义动作+代码解析
- 电路模电数电课程中卡诺图知识点(包括化简原则和步骤)
- Word文档生成神器:开源项目poi.tl使用介绍
- 你值得拥有!-阿里P8架构师荣耀典藏:Java多线程与Socket实战微服务框架笔记