当前位置: 首页> 游戏> 评测 > 力扣24. 两两交换链表中的节点

力扣24. 两两交换链表中的节点

时间:2025/7/31 2:45:09来源:https://blog.csdn.net/akdjfhx/article/details/139608305 浏览次数:0次

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

示例 1:

输入:head = [1,2,3,4]     输出:[2,1,4,3]

示例 2:

输入:head = []     输出:[]

示例 3:

输入:head = [1]     输出:[1]

/*** 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* p1=head->next;ListNode* p2=head;while(p1){int t=p1->val;//交换节点值即可p1->val=p2->val;p2->val=t;
//先移动后面的指针,如果为空则退出
//注意:如果p1->next已经为空,直接查找p1->next->next会在运行时报错p2=p2->next->next;if(p2==nullptr){break;}p1=p1->next->next;}return head;}
};
关键字:力扣24. 两两交换链表中的节点

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: