Swap Nodes in Pairs
2015-10-29 13:10
393 查看
Given a linked list, swap every two adjacent nodes and return its head.
For example,
Given
Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode swapPairs(ListNode head) {
if(head == null)
return null;
ListNode next = head.next;
if(next == null)
return head;
ListNode nextNext = next.next;
ListNode newNext = swapPairs(nextNext);
next.next = head;
head.next = newNext;
return next;
}
}
注意,要先递归反转后面的list,再反转当前的list
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.
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode swapPairs(ListNode head) {
if(head == null)
return null;
ListNode next = head.next;
if(next == null)
return head;
ListNode nextNext = next.next;
ListNode newNext = swapPairs(nextNext);
next.next = head;
head.next = newNext;
return next;
}
}
注意,要先递归反转后面的list,再反转当前的list
相关文章推荐
- RVM 与 Ruby | NVM 与 Nodejs
- nodejs express 加载html模板
- 也谈基于NodeJS的全栈式开发
- nodejs.md
- node.js Foundation
- nodejs 之express 笔记 include 代替 partials
- Node.js 的异步机制由事件和回调函数——循环中的回调函数
- node.js学习博客转载
- node个人博客第二天
- [116]Populating Next Right Pointers in Each Node
- Nodejs socket.io cliet对象结构
- node第二天
- 基于Node.js的自动化工具Gulp
- Mac上Hexo安装问题解决方法
- Mac上Hexo安装问题解决方法
- node.js_in_practice(intermediate)
- LeetCode 117: Populating Next Right Pointers in Each Node II
- hadoop datanode部分启动不了
- [LeetCode]Remove Nth Node From End of List
- LeetCode 116: Populating Next Right Pointers in Each Node