LeetCode 24. 两两交换链表中的节点(Swap Nodes in Pairs)
2024-09-01 07:08:59
题目描述
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
示例:
给定1->2->3->4
, 你应该返回2->1->4->3
.
说明:
- 你的算法只能使用常数的额外空间。
- 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
解题思路
利用递归的思想,依次交换链表中的节点对。具体对于每个节点来说:
- 若该节点为NULL,则直接返回NULL
- 若该节点的下一个节点为NULL,则直接返回该节点
- 交换该节点与下一个节点,利用辅助指针记录该节点的下一个节点,并递归的交换接下来的节点对
代码
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* swapPairs(ListNode* head) {
if(!head) return NULL;
if(!head->next) return head;
ListNode* temp=head->next;
head->next=swapPairs(temp->next);
temp->next=head;
return temp;
}
};
最新文章
- 【转】Linux常用命令大全
- http状态码详解
- 中秋时候做了一个ppt画图插件
- 14.Xcode8imageview图片圆角不显示的bug
- SqlServerProxy的一些资料
- 说一个Sublime Text 2插件、emmet(原名:zen Coding)
- iOS 8 AutoLayOut入门
- hdu1754线段树维护区间最大值
- VS版本下载
- 有关XCode6(iOS8)UITableViewCell与iOS7在UITableViewCell问题
- LinuxIP地址、网卡相关、克隆、VM
- SecureCRT中vim乱码问题
- 工作笔记——使用Jest时遇到的一些问题
- CSS 浮动(float)与定位(position)
- jQuery自定义alert,confirm方法及样式
- Python基础学习(四)
- 【转】大数据分析中Redis怎么做到220万ops
- AWS 使用经验
- 为什么企业依赖于 NoSQL
- MVC数据注解
热门文章
- $store.getters调用不执行
- python之排序(sort/sorted)
- html/form表单常用属性认识
- C#中实现Hash应用
- dedecms 多级栏目时,调用上级栏目名称和链接
- shell cat EOF 变量自动解析问题
- 垃圾回收gc --翻译
- 2019 年百度之星·程序设计大赛 - 初赛一 C. HDU 	6670 Mindis 离散化+dijkstra
- [易学易懂系列|rustlang语言|零基础|快速入门|(15)|Unit Testing单元测试]
- jumpserver部署0.3版本 =====( ̄▽ ̄*)b