Partition List双色问题链表版
[抄题]:
Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.
You should preserve the original relative order of the nodes in each of the two partitions.
For example,
Given 1->4->3->2->5->2 and x = 3,
return 1->2->2->4->3->5.
[思维问题]:
不知道怎么找链表最后一个元素,以为要循环。
其实可以利用“指针节点”的思想,一直添加,最后自然就是最后一个了。
[一句话思路]:
高个节点链表和矮子节点链表拼起来即可。
[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):
[画图]:

[一刷]:
- 要写corner case,还是要返回head
- 直接连接到右边head,因为右边的dummy不需要。
- 注意最后返回的是leftDummy.next
[总结]:
不需要像数组一样用logn空间的partition,直接左右添加就行
[复杂度]:Time complexity: O(n) Space complexity: O(1) 不需要额外空间,就都是1
[英文数据结构,为什么不用别的数据结构]:
[其他解法]:
[Follow Up]:
[题目变变变]:
2/3/4 colors
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode partition(ListNode head, int x) {
if (head == null) {
return head;
}
ListNode leftDummy = new ListNode(0);
ListNode rightDummy = new ListNode(0);
ListNode left = leftDummy;
ListNode right = rightDummy;
//two linked list
while(head != null) {
if (head.val < x) {
left.next = head;
left = left.next;
}
else {
right.next = head;
right = right.next;
}
head = head.next;
}
//join up
right.next = null;
left.next = rightDummy.next; return leftDummy.next;
}
}
Partition List双色问题链表版的更多相关文章
- 完美C++(第5版)(双色)
完美C++(第5版)(双色) 薛正华 沈庚 韦远科 译 ISBN 978-7-121-23198-8 2014年6月出版 定价:148.00元 788页 16开 内容提要 <完美C++(第5版) ...
- HTML5移动开发即学即用(双色) 王志刚 pdf扫描版
HTML5已经广泛应用于各智能移动终端设备上,而且绝大部分技术已经被各种最新版本的测览器所支持:逐一剖析HTML5标准中包含的最新技术,详细介绍了HTML5新标准中提供的各种API,各种各样的应用实例 ...
- 【玩转单片机系列001】 08接口双色LED显示屏驱动方式探索
前些日子,从淘宝上购得一块08接口的双色LED显示屏(打算做个音乐频谱显示器),捣鼓了好几天,终于搞清楚了其控制原理,在这里做个总结,算是备忘吧. 1.LED显示屏的扫描方式 LED显示屏的扫描方式有 ...
- css实现双色饼图
from:wx--前端早读课 首先回想用css画三角形的方法: <div class="triangle"></div> .triangle { displ ...
- 用python实现栈/队列/双端队列/链表
栈是元素的有序集合,添加操作与移除操作都发生在其顶端,先进后出栈操作:创建空栈,增删(顶端),查(顶端元素,元素个数,是否为空)应用:将十进制数转换成任意进制数 class Stack: # 用列表创 ...
- 《Node.js实战(双色)》作者之一——吴中骅访谈录
- 安装Win10+Ubuntu14.04双系统(uefi启动版)
说明 本教程基于个人电脑(型号:神舟K550d-i7 D1)成功安装测试发布,不同硬件环境可能有细微差异,为预防安装过程中出现意想不到的报错,重要数据请提前备份 硬件环境 cpu:Intel i7-4 ...
- 代码自定义双色title的按钮
所图所示,通过代码自定义这样的按钮. .h文件 // // CustomButtom.h // testPlus // // Created by 鹰眼 on 14/10/20. // Copyrig ...
- UVA 1347(POJ 2677) Tour(双色欧几里德旅行商问题)
Description John Doe, a skilled pilot, enjoys traveling. While on vacation, he rents a small plane a ...
随机推荐
- CentOS 6.6下安装配置Tomcat环境
本文转载至:http://www.linuxidc.com/Linux/2015-08/122234.htm 实验系统:CentOS 6.6_x86_64 实验前提:防火墙和selinux都关闭 实验 ...
- RmNet,CDC-ECM ,NDIS,RNDIS区别
RmNet和CDC-ECM区别:更像是两种拨号方式的区别,RmNet获取公网IP,ECD-ECM获取局域网IP. 在高通平台上,rmnet driver 和标准的CDC-ECM是有区别的,rmnet ...
- PHP流程控制 - if 语句
PHP - if 语句 if 语句用于仅当指定条件成立时执行代码. 语法 if (条件) { 条件成立时要执行的代码; } 如果当前时间小于 20,下面的实例将输出 "Have a good ...
- 使用SharedPreferences存储数据
SharedPreferences把数据保存在指定名称的XML文件中,文件地址在/data/data/包名/Shared_Prefs/文件夹中,具体是通过map形式保存. 保存数据: SharedPr ...
- load data
LOAD DATA INFILE 'D:\GX\\mm.txt' REPLACE INTO TABLE mm FIELDS TERMINATED BY ' ' // 以空格为分隔符插入数据,前提是mm ...
- Django---form 详解
Form表单的功能 准备数据.重构数据,以便下一步提交. 为数据创建HTML 表单 接收并处理客户端提交的表单和数据 普通字段详解: class BooleanField(**kwargs): 默认的 ...
- BDE 退出历史 迁移至FireDAC
BDE组件套TQuery\TTable\TStoreProce结束历时使命. ADO组件套也停止更新, 将来是FireDAC组件套的江湖 Migrating BDE Applications to F ...
- delphi 加密 XOR
From http://www.delphigeist.com/2009/09/text-encryption-with-xor.html Text encryption with XOR Ev ...
- MySQL数据类型的长度
MySQL有几种数据类型可以限制类型的"长度",有CHAR(Length).VARCHAR(Length).TINYINT(Length). SMALLINT(Length).ME ...
- BLOB 操作
对于数据库是BLOB类型存储数据. BLOB数据插入: Oracle提供的标准方式: 先插入一个空BLOB对象,然后Update这个空对象. 首先使用empty_blob()函数插入一个空BLOB对象 ...