建两个链表,一个是
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* partition(ListNode* head, int x) {
ListNode* p1=new ListNode(0),*p2=p1,*q1=new ListNode(0),*q2=q1;
while(head){
if(head->val<x) p1->next=head,p1=p1->next;
else q1->next=head,q1=q1->next;
head=head->next;
}
p1->next=q2->next,q1->next=NULL;
head=p2->next;
delete(p2),delete(q2);
return head;
}
};