24. 两两交换链表中的节点-力扣双百代码
2023-09-14 09:06:52 时间
24. 两两交换链表中的节点
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。
示例 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;
* struct ListNode *next;
* };
*/
struct ListNode* swapPairs(struct ListNode* head){
struct ListNode *p=head;
if(head==NULL||head->next==NULL){
return head;
}
struct ListNode *l=(struct ListNode*)malloc(sizeof(struct ListNode)),*start=head->next;
l->next=NULL;
while(head){
head=p;
if(head==NULL){
l->next=NULL;
break;
}
if(p&&p->next){
p=p->next;
p=p->next;
}
if(head->next){
l->next=head->next;
l=l->next;
l->next=head;
l=l->next;
}
else{
l->next=head;
l=l->next;
l->next=NULL;
break;
}
}
return start;
}
相关文章
- 【C/C++学院】0802-链式栈/链表队列以及优先队列/封装链表库
- 循环链表结构
- Java实现 LeetCode 382 链表随机节点
- Java实现 LeetCode 237 删除链表中的节点
- Java实现 LeetCode 237 删除链表中的节点
- Java实现 LeetCode 92 反转链表 II
- Java实现 LeetCode 83 删除排序链表中的重复元素
- Java实现 LeetCode 24 两两交换链表中的节点
- Java实现 LeetCode 19删除链表的倒数第N个节点
- Python数据结构——链表的实现
- LeetCode(109):有序链表转换二叉搜索树
- LeetCode(19):删除链表的倒数第N个节点
- 29. 删除链表中重复的节点
- Leetcode.1019 链表中的下一个更大节点
- 剑指 Offer II 028. 展平多级双向链表
- 剑指 Offer II 026. 重排链表
- Leetcode.剑指 Offer II 022 链表中环的入口节点
- C/C++基础讲解(十五)之数据结构篇链表操作
- 删除链表中的节点
- 【LeetCode 19】删除链表的倒数第N个节点
- 【华为OD机试Python实现】HJ48 从单向链表中删除指定值的节点(中等)
- 382. 链表随机节点-哈希表法
- 2095. 删除链表的中间节点-两步走和一步走策略
- 面试题 02.07.返回 链表相交节点
- 剑指 Offer II 029. 排序的循环链表-纯链表实现
- Leetcode 237. 删除链表中的节点
- leetcode 24. 两两交换链表中的节点 js实现
- 【剑指offer】递归循环两种方式反转链表
- 力扣:160. 相交链表
- LeetCode 237. 删除链表中的节点
- LeetCode 24. 两两交换链表中的节点
- 链表学习(一)静态链表的构造