Partition List
2016-05-27 16:04
369 查看
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.
思路:题目要求是对一个给定的链表做划分。给定一个数值x,将链表中小于x的值放在链表的前面,等于或者大于x的值放在链表的后面。
可以将小于x的值单独组成一个链表,将大于等于x的值组成一个链表。遍历结束以后,将这两个链表链接到一起就可以了
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* partition(ListNode* head, int x) {
if(head==NULL||head->next==NULL)
return head;
ListNode *little=new ListNode(0),*l1=little;
ListNode *bigger=new ListNode(0),*l2=bigger;
ListNode *p=head;
while(p)
{
if(p->val<x)
{
l1->next=p;
l1=p;
p=p->next;
}
else
{
l2->next=p;
l2=p;
p=p->next;
}
}
l1->next=bigger->next;
l2->next=NULL;
return little->next;
}
};
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.
思路:题目要求是对一个给定的链表做划分。给定一个数值x,将链表中小于x的值放在链表的前面,等于或者大于x的值放在链表的后面。
可以将小于x的值单独组成一个链表,将大于等于x的值组成一个链表。遍历结束以后,将这两个链表链接到一起就可以了
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* partition(ListNode* head, int x) {
if(head==NULL||head->next==NULL)
return head;
ListNode *little=new ListNode(0),*l1=little;
ListNode *bigger=new ListNode(0),*l2=bigger;
ListNode *p=head;
while(p)
{
if(p->val<x)
{
l1->next=p;
l1=p;
p=p->next;
}
else
{
l2->next=p;
l2=p;
p=p->next;
}
}
l1->next=bigger->next;
l2->next=NULL;
return little->next;
}
};
相关文章推荐
- gson框架的使用
- 柴俊理金:5月27号黄金,宁贵沥青操作建议
- MSSQL事务与视图
- 关于在extjs中使用column布局,不能显示textfield的标签(fieldLabel)解决方法
- 初学linux命令-mkdir、rm、rmdir、mv
- jquery动态添加数据,数据分页
- 获取汉字拼音首字母
- 14.5 wait和notify方法 停止线程
- AFNetworking 新版本3.0的迁移
- 期末设计(十三周)
- 刷题记录20160527
- 如何利用c++编写不能被继承、但可以在类外定义对象的类
- 列出100个质数
- Java 教程
- mac 隐藏Dock
- 线程池实例:使用Executors和ThreadPoolExecutor
- Less相关
- Android画图Path的使用
- 14.4 线程的通讯
- Delphi之窗