给定一个链表,对每两个相邻的结点作交换并返回头节点。
例如:
给定 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

最新文章

  1. 使用DeviceOne实现微信小程序功能
  2. ASP.NET 状态服务 及 session丢失问题解决方案总结
  3. 搞笑的u盘图片
  4. jQuery 实现Bootstrap Chart 图表
  5. x264命令参数与代码中变量的对应关系
  6. 关于iOS9中配置App Transport Security(应用程序传输安全协议)
  7. 关于Aggregate 的一点用法
  8. 队列(顺序存储)C++模板实现
  9. oracle中不曾熟悉的 to_char、to_number(未完待续)
  10. Android Studio:Unable to add window android.view.ViewRootImpl$W@5e2d85a -- permission denied for this window 第一行代码
  11. 什么是Web Worker?
  12. VS code 中的各种变量 ${file},${fileBasename}
  13. Python的基础语法(一)
  14. WireShark 实例分析笔记(概念)
  15. Prometheus监控学习笔记之Prometheus的架构及持久化
  16. DataSet 多表关系
  17. jquery文件的引入
  18. SVM之解决线性不可分
  19. css 问题
  20. THREE.OrbitControls参数控制

热门文章

  1. 【转】mysql查询当天所有数据sql语句
  2. HDU1026(延时迷宫:BFS+优先队列)
  3. 【转】 Pro Android学习笔记(七十):HTTP服务(4):SOAP/JSON/XML、异常
  4. 人物-IT-史玉柱:史玉柱
  5. PHP二维数组,根据多个字段来排序
  6. ORM查询相关
  7. numpy.ones(shape, dtype=None, order='C')
  8. URL中#符号的作用
  9. 6、git和github
  10. 解决Umbraco中Generated文件夹下面model问题