LeetCode(24) Swap Nodes in Pairs
2024-08-26 19:01:58
题目
Given a linked list, swap every two adjacent nodes and return its head.
For example,
Given 1->2->3->4, you should return the list as 2->1->4->3.
Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.
分析
如演示样例所看到的。给定一个链表。要求交换链表中相邻两个节点。
对于此题的程序实现,必须注意的是指针的判空,否则。一不注意就会出现空指针异常。
AC代码
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* swapPairs(ListNode* head) {
if (head == NULL || head->next == NULL)
return head;
ListNode *p = head , *q = p->next;
//首先交换头两个结点,同一时候保存q后结点
ListNode *r = q->next;
head = q;
p->next = r;
q->next = p;
if (r && r->next)
{
ListNode *pre = p;
p = p->next;
q = p->next;
while (q)
{
//保存q结点后结点
ListNode *r = q->next;
pre->next = q;
p->next = r;
q->next = p;
if (r && r->next)
{
pre = p;
p = r;
q = p->next;
}
else{
break;
}
}
}
return head;
}
};
最新文章
- [转载]使用PyQt来编写第一个Python GUI程序
- 异步调试神器Slog,“从此告别看日志,清日志文件了”
- 解高次同余方程 (A^x=B(mod C),0<;=x<;C)Baby Step Giant Step算法
- android 工具类之图片加工
- 设计模式_Memento_备忘录模式
- java_设计模式_组合模式_Composite Pattern(2016-08-12)
- JAVA中Singleton的用法
- Chrome浏览器扩展开发系列之十三:消息传递Message
- poj2524 解题报告
- Spring MVC 学习总结(九)——Spring MVC实现RESTful与JSON(Spring MVC为前端提供服务)
- 2019-04-05 Spring Boot学习记录
- 【Python】Part1 应用1-Netcat
- javascript之封装(引用网络)
- hdu-6333-莫队
- EF查询某个时间段内的数据遇到坑!
- Java常考面试题(五)
- ASP.NET 实现验证码以及刷新验证码
- dorado7-发布
- loj#2721. 「NOI2018」屠龙勇士
- 装了wamp之后,80端口被占用解决办法