ListNode* listPartition1(ListNode* head, int num){
if(head=nullptr)
return nullptr;
if(head->next=nullptr)
return head;
ListNode *sh=NULL;//小于区域的head
ListNode *st=NULL;//小于区域的end
ListNode *eh=NULL;
ListNode *et=NULL;
ListNode *bh=NULL;
ListNode *bt=NULL;
ListNode *next;
while(head!=nullptr){
next=head->next;
head->next=nullptr;
if(head->val<num){
if(sh=nullptr)
{
sh=head;
st=head;
}
else
{st->next=head;
st=head;}}
if(head->val>num){
if(bh=nullptr)
{bh=head;
bt=head;
}
else{
bt->next=head;
bt=head;}}
else
{if(eh==nullptr)
{eh=head;
et=head;
}
else{
et->next=head;
et=head;}}
head=next;}
if(sh!=nullptr){
st->next=eh;
et=et==nullptr?st:et;}
if(eh!=nullptr){
et->next=bh;
}
return sh!=nullptr?sh:eh!==nullptr?eh:bh;}