#include <cstdlib>
class Partition {
public:
ListNode* partition(ListNode* pHead, int x)
{
ListNode* newtable1;
ListNode* tailtable1;
ListNode* newtable2;
ListNode* tailtable2;
newtable1 = tailtable1 = (ListNode*)malloc(sizeof(ListNode));
newtable2 = tailtable2 = (ListNode*)malloc(sizeof(ListNode));
while(pHead)
{
if(pHead->val < x)
{
tailtable1->next = pHead;
tailtable1 = tailtable1->next;
}
else
{
tailtable2->next = pHead;
tailtable2 = tailtable2->next;
}
pHead = pHead->next;
}
tailtable1->next = newtable2->next;
tailtable2->next = NULL;
ListNode* n = newtable1->next;
free(newtable1);
free(newtable2);
return n;
}
};