refactory the code
This commit is contained in:
parent
80be55345f
commit
7a7232643b
@ -28,9 +28,7 @@ ListNode *sortList(ListNode *head) {
|
||||
//find the middle place
|
||||
ListNode *p1=head, *p2=head->next;
|
||||
|
||||
ListNode *prev;
|
||||
while(p2 && p2->next){
|
||||
prev = p1;
|
||||
p1 = p1->next;
|
||||
p2 = p2->next->next;
|
||||
}
|
||||
@ -44,23 +42,20 @@ ListNode *mergeTwoLists(ListNode* head1, ListNode* head2){
|
||||
ListNode *p1 = head1, *p2=head2;
|
||||
static ListNode dummy(0);
|
||||
|
||||
dummy.next = p1;
|
||||
ListNode *prev = &dummy;
|
||||
ListNode *tail = &dummy;
|
||||
|
||||
while(p1 && p2){
|
||||
if(p1->val < p2->val){
|
||||
prev = p1;
|
||||
tail->next = p1;
|
||||
p1 = p1->next;
|
||||
}else{
|
||||
prev->next = p2;
|
||||
tail->next = p2;
|
||||
p2 = p2->next;
|
||||
prev = prev->next;
|
||||
prev->next = p1;
|
||||
}
|
||||
tail = tail->next;
|
||||
}
|
||||
if (p2){
|
||||
prev->next = p2;
|
||||
}
|
||||
if (p1) tail->next = p1;
|
||||
if (p2) tail->next = p2;
|
||||
|
||||
return dummy.next;
|
||||
}
|
||||
@ -101,11 +96,11 @@ int main(int argc, char** argv)
|
||||
for(int i=0; i<n; i++){
|
||||
a[i] = random()%n + 1;
|
||||
}
|
||||
|
||||
|
||||
ListNode *p = createList(a, n);
|
||||
printList(p);
|
||||
printList(sortList(p));
|
||||
|
||||
|
||||
delete[] a;
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user