当前位置:网站首页>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;
}
};
边栏推荐
猜你喜欢
随机推荐
WebAPI 复习
C语言 — 位运算操作
RY-D1/1 Voltage Relay
log4j中appender的简介说明
Database transactions, JDBC operations and data types
关于verilog的时延研究
原生js 创建表格
jmeter接口压力测试(一)
log4js入门
eric6教程(电脑的配置基本知识)
自定义查询--关于倒排索引的研究
AB测试 总结归纳
How to add data to the request header when feign is called remotely
"Learning Cloud Networking with Teacher Tang" - Problem Location - The host is working but the container is not working
高手云集、丰富活动,斩获佳绩,超过2万名开发者参与的AI社团邀你加入!
京东校招笔试题+知识点总结
API 网关 APISIX 在Google Cloud T2A 和 T2D 的性能测试
feign远程调用时如何在请求头加入数据
360 released a future-oriented EDR to protect the security of government and enterprise user terminals in an all-round way
【Flume】batchSize和transactionCapacity区别








![[ASP.NET Core] Dependency Injection for Option Classes](/img/3f/820b6e33897cf385c3206c02d741f8.png)
