leetcode-24-两两交换链表中的节点(C语言实现)
2023-12-13 05:29:32
题目:
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。
示例 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;
* struct ListNode *next;
* };
*/
struct ListNode* swapPairs(struct ListNode* head) {
if(head==NULL)
return NULL;
if(head->next==NULL)
return head;
struct ListNode *pre=(struct ListNode *)malloc(sizeof(struct ListNode));
pre->next=head;
struct ListNode *pTemp=pre;
struct ListNode *start,*end;
while(pTemp->next&&pTemp->next->next){
start=pTemp->next;
end=pTemp->next->next;
pTemp->next=end;
start->next=end->next;
end->next=start;
pTemp=start;
}
return pre->next;
}
大佬的思路好清晰TAT? 感觉我就是写一步看一步,缺哪个变量就加上,经常会措手不及www思路好混乱
文章来源:https://blog.csdn.net/bbbbb___/article/details/134959299
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!