码迷,mamicode.com
首页 > 其他好文 > 详细

【leetcode】Partition List

时间:2015-05-18 14:29:35      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:

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.

 

 1 class Solution {
 2 public:
 3     ListNode* partition(ListNode* head, int x) {
 4         if(head==NULL) return NULL;
 5 
 6         ListNode * less=new ListNode(0);
 7         ListNode * greater=new ListNode(0);
 8         ListNode * greaterhead=greater;
 9         ListNode * lesshead=less;
10         ListNode * p=head;
11 
12         while(p)
13         {
14             if(p->val<x)
15             {
16                 less->next=p;
17                 p=p->next;
18                 less=less->next;
19                 less->next=NULL;
20             }
21             else
22             {
23                 greater->next=p;
24                 p=p->next;
25                 greater=greater->next;
26                 greater->next=NULL;
27             }
28         }
29 
30         less->next=greaterhead->next;
31         return lesshead->next;
32     }
33 };

 

【leetcode】Partition List

标签:

原文地址:http://www.cnblogs.com/jawiezhu/p/4511689.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!