当前位置:网站首页>24. 两两交换链表中的节点
24. 两两交换链表中的节点
2022-07-30 11:07:00 【贪心的葡萄】
24. 两两交换链表中的节点
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。
示例 1:
输入:head = [1,2,3,4]
输出:[2,1,4,3]
示例 2:
输入:head = []
输出:[]
示例 3:
输入:head = [1]
输出:[1]
提示:
链表中节点的数目在范围 [0, 100] 内
0 <= Node.val <= 100
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */
class Solution {
public:
ListNode* swapPairs(ListNode* head) {
if (!head || !(head->next)){
return head;
}
ListNode* pfr = head;
ListNode* psc = pfr->next;
ListNode* phead = psc;
ListNode* prev = nullptr;
while (psc) {
ListNode* rcd = nullptr;
if (psc->next) {
rcd = psc->next;
}
if (prev) {
prev->next = psc;
}
psc->next = pfr;
pfr->next = nullptr;
if (rcd) {
pfr->next = rcd;
prev = pfr;
pfr = rcd;
if (pfr->next) {
psc = pfr->next;
}else{
break;
}
}else{
break;
}
}
return phead;
}
};
边栏推荐
猜你喜欢
GBJ2510-ASEMI电机专用25A整流桥GBJ2510
208. 实现 Trie (前缀树)
The battle-hardened programmer was also deceived by a fake programmer from a certain fish. The trust between programmers should be the highest, and he alone destroyed this sense of trust
现在报PMP还来得及参加9月的考试吗?分享敏捷全真模拟题
MySQL——数据库基础
向上管理读书笔记
idea的package没有空心
TestNg整合Retry代码
还在用Swagger?我推荐这款零代码侵入的接口管理神器
加密和安全
随机推荐
ansible学习笔记01
听到'演员工作比工人辛苦,吃得也不如工人好?'我笑了
单片机开发之LCD1602显示实验
unity3d C#语言基础(继承)
AB test summary
vscode中写markdown格式笔记的配置过程和相关语法
优酷VIP会员周卡只需7.5元,看《沉香如屑》用优酷视频
360 released a future-oriented EDR to protect the security of government and enterprise user terminals in an all-round way
【数据库基础】redis使用总结
RY-D1/1 Voltage Relay
正则表达式快速入门笔记
Swift common extension classes and simple encapsulation
208. 实现 Trie (前缀树)
Current relay JL-8GB/11/AC220V
Voltage relay h2d SRMUVS - 100 vac - 2
原生js 创建表格
美团内推+校招笔试题+知识点总结
淘宝/天猫淘宝评论问答列表接口 API
jmeter接口压力测试(一)
Assembly to implement bubble sort