/**
* 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) {
ListNode dummy1(-1);
ListNode dummy2(-1);
ListNode *prev1=&dummy1;
ListNode *prev2=&dummy2;
ListNode *curr=head;
while(curr!=NULL)
{
if(curr->val<x)
{
prev1->next=curr;
prev1=prev1->next;
}
else
{
prev2->next=curr;
prev2=prev2->next;
}
curr=curr->next;
}
prev1->next=NULL;
prev2->next=NULL;
if(dummy1.next==NULL) return dummy2.next;
else
{
prev1->next=dummy2.next;
return dummy1.next;
}
}
};
* 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) {
ListNode dummy1(-1);
ListNode dummy2(-1);
ListNode *prev1=&dummy1;
ListNode *prev2=&dummy2;
ListNode *curr=head;
while(curr!=NULL)
{
if(curr->val<x)
{
prev1->next=curr;
prev1=prev1->next;
}
else
{
prev2->next=curr;
prev2=prev2->next;
}
curr=curr->next;
}
prev1->next=NULL;
prev2->next=NULL;
if(dummy1.next==NULL) return dummy2.next;
else
{
prev1->next=dummy2.next;
return dummy1.next;
}
}
};