leetcode 086 Partition List
2016-05-08 14:08
495 查看
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
return
Subscribe to see which companies asked this question
class Solution {
public:
ListNode* partition(ListNode* head, int x) {
ListNode *small=NULL, *greater=NULL, *smallCur=NULL, *greaterCur=NULL;
if(head==NULL) return head;
for(ListNode *cur=head; cur!=NULL;) {
ListNode *next = cur->next;
if(cur->val < x) {
if(small==NULL) {
small=cur;
} else {
smallCur->next=cur;
}
smallCur=cur;
smallCur->next = NULL;
} else {
if(greater==NULL) {
greater=cur;
} else {
greaterCur->next=cur;
}
greaterCur=cur;
greaterCur->next=NULL;
}
cur = next;
}
if(small!=NULL) {
smallCur->next=greater;
} else {
small=greater;
}
return small;
}
};
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->2and x = 3,
return
1->2->2->4->3->5.
Subscribe to see which companies asked this question
class Solution {
public:
ListNode* partition(ListNode* head, int x) {
ListNode *small=NULL, *greater=NULL, *smallCur=NULL, *greaterCur=NULL;
if(head==NULL) return head;
for(ListNode *cur=head; cur!=NULL;) {
ListNode *next = cur->next;
if(cur->val < x) {
if(small==NULL) {
small=cur;
} else {
smallCur->next=cur;
}
smallCur=cur;
smallCur->next = NULL;
} else {
if(greater==NULL) {
greater=cur;
} else {
greaterCur->next=cur;
}
greaterCur=cur;
greaterCur->next=NULL;
}
cur = next;
}
if(small!=NULL) {
smallCur->next=greater;
} else {
small=greater;
}
return small;
}
};
相关文章推荐
- Vagrant搭建Ubuntu-JavaEE开发环境——Tomcat+JDK+MySQL+dubbo+测试
- Android 最火的快速开发框架androidannotations配置详解
- struts2进行多文件上传
- Python 迭代工具
- onmousedown,onmouseup,onclick同时应用于一个标签节点Element
- 我的目标
- 常用排序算法总结(三)
- linux curl命令详解
- java设计模式之模板模式
- Ext.grid.Panel中stateId的作用
- poj1068Parencodings
- HashMap实现原理分析
- Android Gradle Plugin指南(二)——基本项目
- java中的集合类(Collection)中的Set
- Search in Rotated Sorted Array
- Linux date命令详解
- NetAnalyzer2016使用方法
- 理解面向对象编程(二)-用例图及特征
- 多波束EM122安装纪实(一)总览
- String Date Calendar之间的转换