Swap Nodes in Pairs
2015-11-13 13:45
525 查看
题目描述
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.
题目解答
解题思路
该题是Reverse Nodes in K-group 特殊情况, 首先应该引入头结点,来统一化节点的操作, 用来三个节点指针(pre, first, second)来控制节点的翻转。代码实现
public class Solution { public ListNode swapPairs(ListNode head) { if(head == null) return null; ListNode dummy = new ListNode(0); dummy.next = head; ListNode pre = dummy; ListNode first = pre.next; ListNode second = first.next; while (second != null){ //实现翻转 first.next = second.next; second.next = pre.next; pre.next = second; pre = first; first = pre.next; if(first == null) break; second = first.next; } return dummy.next; } }
相关文章推荐
- js-Node对象属性二
- js-Node对象属性
- LeetCode 25 Reverse Nodes in k-Group(在K组链表中反转结点)(Linked List)(*)
- 七天学会NodeJS
- CCDrawNode类的引用
- CCDrawNode类的引用
- CCDrawNode类的引用
- [Nodejs]利用Socket.IO配合Express4搭建即时聊天
- node.js回调函数之阻塞调用与非阻塞调用
- Reverse Nodes in k-Group
- nodejs +webSocket 多人聊天室
- LeetCode 24 Swap Nodes in Pairs(交换序列中的结点)(Linked List)
- Node.js学习4
- nodejs搭配phantomjs highcharts后台生成图表
- dom4j中selectNodes无法获得节点
- 初探Node.js
- Node.js中的数组和javascript中的数组使用区别
- [LeetCode237]Delete Node in a Linked List
- 转载-Hadoop NameNode元数据相关文件目录解析
- HDFS HA中name nodes访问顺序的问题