86 parition list
801 ワード
1, X , X ,
2,
3, NULL
struct ListNode* partition(struct ListNode* head, int x) {
struct ListNode *d1, *d2, *last1, *last2;
d1 = malloc(sizeof(struct ListNode));
d2 = malloc(sizeof(struct ListNode));
d1->next = d2->next = NULL;
last1 = d1;
last2 = d2;
while(head){
if(head->val < x){
last1->next = head;
last1 = last1->next;
}else{
last2->next = head;
last2 = last2->next;
}
head = head->next;
}
last1->next = d2->next;
last2->next = NULL;//!!!!!!!!!!!!!!!!!!!!
return d1->next;
}