Easy solution(taking extra memory though) simple approach


#1

ListNode* Solution::partition(ListNode* A, int B) {
ListNode* temp=A,a,b;
ListNode
p=new ListNode(0);
ListNode
k=new ListNode(0);
a=p;
b=k;
while(temp!=NULL){
if(temp->val<B){
p->next=new ListNode(temp->val);
p=p->next;
temp=temp->next;
}
else{
k->next=new ListNode(temp->val);
k=k->next;
temp=temp->next;
}
}
p->next=b->next;
return a->next;
}.