链表划分
2016-07-09 10:26
267 查看
题目
给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。你应该保留两部分内链表节点原有的相对顺序。
样例
给定链表 1->4->3->2->5->2->null,并且 x=3
返回 1->2->2->4->3->5->null
解题
定义两个链表,一个链接较小的,一个链接较大的,最后链接起来public class Solution { /** * @param head: The first node of linked list. * @param x: an integer * @return: a ListNode */ public ListNode partition(ListNode head, int x) { // write your code here if(head == null || head.next == null) return head; ListNode p = head; ListNode leftDummy = new ListNode(0); ListNode rightDummy = new ListNode(0); ListNode left = leftDummy, right = rightDummy; while (p != null) { if (p.val < x) { left.next = p; left = p; } else { right.next = p; right = p; } p = p.next; } right.next = null; left.next = rightDummy.next; return leftDummy.next; } }
相关文章推荐
- 虚析构函数
- Linux内核---48.spi驱动修改
- 编译链接中的-可重定位目标文件
- google浏览器设置不替换当前网页
- 什么是Mbps、Kbps、bps、kb、mb及其换算和区别
- 手势识别与事件库 Touch.js若干问题及解决方法
- BZOJ_1628_[Usaco2007_Demo]_City_skyline_(单调栈)
- Android JavaPoet 动态生成Java源码(1)
- JavaWeb三层结构---课设02
- Linux内核---47.关于clk_get与clk_enable
- Cocos2d-3.x触摸事件 中 setSwallowTouches
- iOS开发 刮刮乐效果的实现
- Super VLAN
- poj滑雪(记忆化搜索)
- 克隆虚拟机
- Objective-C规范注释心得——同时兼容appledoc(docset、html)与doxygen(html、pdf)的文档生成
- POJ1011
- Linux内核---46.关于mem_map
- BZOJ2850 巧克力王国
- Linux内核---45.关于initcall