Node* partition(Node *head, int x) //链表的划分
{
Node *s=NULL;
if(head==NULL)
return NULL;
Node *p=head;
Node *phead2=NULL,*phead1=NULL;
Node *p1=NULL,*p2=NULL;
while(p!=NULL)
{
if(p->val<x)
{
if(p1==NULL)
{
p1=p;
phead1=p1;
}
else
{
p1->next=p;
p1=p;
}
}
else if(p->val>x)
{
if(p2==NULL)
{
p2=p;
phead2=p2;
}
else
{
p2->next=p;
p2=p;
}
}
else
{
s=p;
}
p=p->next;
}
if(s!=NULL)
{
p1->next=s;
s->next=phead2;
}
else
{
p1->next=phead2;
}
return phead1;
}