合并两个顺序链表的两种方式

来源:互联网 发布:图论算法 python 编辑:程序博客网 时间:2024/06/05 07:13
struct Node{int entry;Node* next;};Node* MergeRecursive(Node *first,Node *second){if(first==NULL)  return second;if(second==NULL)  return first;Node *head=NULL;if(first->entry<second->entry){head=first;head->next=MergeRecursive(first->next,second);}else{head=second;head->next=MergeRecursive(first,second->next);}return head;}Node* Merge(Node *first, Node *second){Node *last_sorted;Node combined;last_sorted = &combined;while (first!=NULL&&second!=NULL) {if (first->entry<=second->entry){last_sorted->next=first;last_sorted=first;first=first->next; } else{last_sorted->next=second;last_sorted=second;second=second->next;}  }  if (first==NULL)last_sorted->next=second;elselast_sorted->next=first;return combined.next;}

0 0
原创粉丝点击