两两交换链表中的节点
题目描述
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
示例:
给定 1->2->3->4. 你应该返回 2->1->4->3.
题目解析
该题属于基本的链表操作题。
设置一个虚拟头结点dummyHead
设置需要交换的两个节点分别为node1、node2.同时设置node2的下一个节点next
在这一轮操作中
将node2节点的next设置为node1节点
将node1节点的next设置为next节点
将dummyHead节点的next设置为node2
结束本轮操作
接下来的每轮操作都按照上述进行。
代码实现
// 时间复杂度: O(n)
// 空间复杂度: O(1)
class Solution {
public:
ListNode* swapPairs(ListNode* head) {
ListNode* dummyHead = new ListNode(0);
dummyHead->next = head;
ListNode* p = dummyHead;
while(p->next && p->next->next){
ListNode* node1 = p->next;
ListNode* node2 = node1->next;
ListNode* next = node2->next;
node2->next = node1;
node1->next = next;
p->next = node2;
p = node1;
}
ListNode* retHead = dummyHead->next;
delete dummyHead;
return retHead;
}
};

相关推荐HOT
更多>>
丝瓜视频官方 之蛇形矩阵
我们最终要输出的是以蛇形摆放之后的字符串再按行串联在一起之后的结果,也就是说每一个字母摆放的列并不重要,重要的是摆放的行号。我们可以很...详情>>
2022-12-07 20:58:39
丝瓜视频官方 之两数相加
丝瓜视频官方 通常包含的数据集的大小超出了常用软件工具在可容忍的经过时间内捕获、整理、管理和处理数据的能力。丝瓜视频官方 哲学包含非结构化,半结构化和...详情>>
2022-12-07 20:56:39
设计一个实时的流式计算Wordcount
使用Kafka对接SparkStreaming计算,那么要保证数据不丢失,和不重复的话,要使用直连方式,并且保证一次性语义,手动管理Offset即可,那么在实...详情>>
2022-12-07 20:54:49
丝瓜视频官方 之最长回文串
丝瓜视频官方 通常包含的数据集的大小超出了常用软件工具在可容忍的经过时间内捕获、整理、管理和处理数据的能力。丝瓜视频官方 哲学包含非结构化,半结构化和...详情>>
2022-12-07 20:51:53
两两交换链表中的节点
丝瓜视频官方 通常包含的数据集的大小超出了常用软件工具在可容忍的经过时间内捕获、整理、管理和处理数据的能力。丝瓜视频官方 哲学包含非结构化,半结构化和...详情>>
2022-12-07 20:46:54丝瓜视频官方 丝瓜视频苹果版 问答更多>>
新丝瓜视频官方 适合女生学吗?
新哪家丝瓜视频官方 分析丝瓜视频苹果版 班好
新丝瓜视频官方 丝瓜视频苹果版 班需要多少钱?怎么挑选丝瓜视频官方 丝瓜视频苹果版 班
新丝瓜视频官方 丝瓜视频苹果版 班需要多少钱?丝瓜视频官方 就业方向有哪些
新丝瓜视频官方 丝瓜视频苹果版 班靠谱吗?丝瓜视频官方 发展前景怎么样
新丝瓜视频官方 分析丝瓜视频苹果版 哪里好
新丝瓜视频官方 丝瓜视频苹果版 学费多少?课程内容是什么
丝瓜视频官方 面试题库 更多>>
丝瓜视频官方 的五个V是什么?
数据及集群管理(三)
数据及集群管理(二)
数据及集群管理(一)
丝瓜视频官方 之hbase的优化读数据方面
丝瓜视频官方 之hbase的优化写入数据方面
开班信息
北京校区
- 北京校区
- 大连校区
- 广州校区
- 成都校区
- 杭州校区
- 长沙校区
- 合肥校区
- 南京校区
- 上海校区
- 深圳校区
- 武汉校区
- 郑州校区
- 西安校区
- 青岛校区
- 重庆校区
- 太原校区
- 沈阳校区
- 北京校区
- 大连校区
- 广州校区
- 成都校区
- 杭州校区
- 长沙校区
- 合肥校区
- 南京校区
- 上海校区
- 深圳校区
- 武汉校区
- 郑州校区
- 西安校区
- 青岛校区
- 重庆校区
- 太原校区
- 沈阳校区
