LeetCode之旅(21)-Swap Nodes in Pairs
2016-04-05 10:22
411 查看
题目:
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.
思路:
首先是判断head和head.next为空的情况,直接返回head然后设置first和second两个变量,用来记录一前一后两个元素
设置pre来记录上一次最后的元素。pre.next = second;
-
代码:
/** * 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||head.next == null){ return head; } ListNode first = head; ListNode second = head.next; ListNode pre = null; ListNode swap = null; if(second != null){ head = second; } while(first != null&&second != null){ swap = second.next; second.next = first; first.next = swap; if(pre != null){ pre.next = second; } pre = first; first = swap; if(swap != null){ second = swap.next; } } return head; } }
相关文章推荐
- LeetCode之旅(21)-Swap Nodes in Pairs
- Node.js + Web Socket 打造即时聊天程序嗨聊
- Node.js服务器
- nodejs v8引擎c++编译版本升级教程
- 【z13区】nodejs原生态模块,写个聊天室
- 揭秘DOM中data和nodeValue属性同步改变那些事
- 24. Swap Nodes in Pairs
- Nodejs积累
- Nodejs超方便更新方式
- (四)Electron 把boostrap控件当做桌面控件用
- 使用nvm让不同版本的Node.js共存
- ECMAScript 2015 (ES6) in Node.js(译)
- nodejs群聊和私聊
- 24. Swap Nodes in Pairs
- Node.js其他模块
- 深入浅出NodeJS笔记(五)---- Promise的序列执行
- 基于NodeJS的秘室聊天室
- LeetCode-24.Swap Nodes in Pairs
- 24. Swap Nodes in Pairs
- nodejs的安装及从测试