/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};*/
class Partition {
public:
ListNode* partition(ListNode* pHead, int x) {
// write code here
if(pHead==nullptr)
return nullptr;
ListNode *smallHead=new ListNode(0);
ListNode *bigHead=new ListNode(0);
ListNode *small=smallHead;
ListNode *big=bigHead;
while(pHead){
if(pHead->val<x){
small->next=pHead;
small=small->next;
}
else{
big->next=pHead;
big=big->next;
}
pHead=pHead->next;
}
big->next=nullptr;
small->next=bigHead->next;
return smallHead->next;
}
}; # -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Partition:
def partition(self, pHead, x):
# write code here
smallHead=ListNode(0)
bigHead=ListNode(0)
small=smallHead
big=bigHead
while pHead!=None:
if pHead.val<x:
small.next=pHead
small=small.next
else:
big.next=pHead
big=big.next
pHead=pHead.next
big.next=None
small.next=bigHead.next
return smallHead.next