024 Swap Nodes in Pairs 交换相邻结点
2024-09-29 07:58:17
给定一个链表,对每两个相邻的结点作交换并返回头节点。
例如:
给定 1->2->3->4,你应该返回 2->1->4->3。
你的算法应该只使用额外的常数空间。不要修改列表中的值,只有节点本身可以更改。
详见:https://leetcode.com/problems/swap-nodes-in-pairs/description/
实现语言:Java
方法一:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode swapPairs(ListNode head) {
if(head==null){
return null;
}
ListNode dummy=new ListNode(-1);
ListNode pre=dummy;
dummy.next=head;
while(pre.next!=null&&pre.next.next!=null){
ListNode last=pre.next.next;
pre.next.next=last.next;
last.next=pre.next;
pre.next=last;
pre=last.next;
}
return dummy.next;
}
}
方法二:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode swapPairs(ListNode head) {
if(head==null||head.next==null){
return head;
}
ListNode tmp=head.next;
head.next=swapPairs(tmp.next);
tmp.next=head;
return tmp;
}
}
参考:http://www.cnblogs.com/grandyang/p/4441680.html
最新文章
- 使用DeviceOne实现微信小程序功能
- ASP.NET 状态服务 及 session丢失问题解决方案总结
- 搞笑的u盘图片
- jQuery 实现Bootstrap Chart 图表
- x264命令参数与代码中变量的对应关系
- 关于iOS9中配置App Transport Security(应用程序传输安全协议)
- 关于Aggregate 的一点用法
- 队列(顺序存储)C++模板实现
- oracle中不曾熟悉的 to_char、to_number(未完待续)
- Android Studio:Unable to add window android.view.ViewRootImpl$W@5e2d85a -- permission denied for this window 第一行代码
- 什么是Web Worker?
- VS code 中的各种变量 ${file},${fileBasename}
- Python的基础语法(一)
- WireShark 实例分析笔记(概念)
- Prometheus监控学习笔记之Prometheus的架构及持久化
- DataSet 多表关系
- jquery文件的引入
- SVM之解决线性不可分
- css 问题
- THREE.OrbitControls参数控制
热门文章
- 【转】mysql查询当天所有数据sql语句
- HDU1026(延时迷宫:BFS+优先队列)
- 【转】 Pro Android学习笔记(七十):HTTP服务(4):SOAP/JSON/XML、异常
- 人物-IT-史玉柱:史玉柱
- PHP二维数组,根据多个字段来排序
- ORM查询相关
- numpy.ones(shape, dtype=None, order='C')
- URL中#符号的作用
- 6、git和github
- 解决Umbraco中Generated文件夹下面model问题