【C語言】兩個有序單鏈表的合併
阿新 • • 發佈:2019-02-06
Node *MergeList(PLinkList p1,PLinkList p2) { PLinkList newhead = NULL; //新連結串列的頭結點 PLinkList end = newhead ; //新連結串列的當前結點 if(!p1 ) { return p2 ; } if(!p2 ) { return p1 ; } if(p1 ->data<p2->data) { newhead= p1; p1=p1 ->next; } else { newhead= p1; p1=p1 ->next; } end=newhead; while(p1 &&p2) { if(p1 ->data>p2->data) { end->next= p2; end= p2; p2=p2 ->next; } else { end->next= p1; end= p1; p1=p1 ->next; } } if(!p1 ) { end->next= p2; } if(!p2 ) { end->next= p1; } return newhead; }