合并k个有序链表

xiaoxiao2021-02-28  82

23. Merge k Sorted Lists

struct ListNode* mergeTwoLists(struct ListNode *l1,struct ListNode *l2) { if(l1==NULL) return l2; if(l2==NULL) return l1; if(l1->val<l2->val) { l1->next=mergeTwoLists(l1->next,l2); return l1; } else { l2->next=mergeTwoLists(l1,l2->next); return l2; } } struct ListNode* mergeKLists(struct ListNode** lists, int listsSize) { if(listsSize==0) return NULL; while(listsSize!=1) { int k=0; for(int i=0;i<listsSize;i+=2) { if(i==listsSize-1) lists[k++]=lists[i]; else lists[k++]=mergeTwoLists(lists[i],lists[i+1]); } listsSize=k; } return lists[0]; }
转载请注明原文地址: https://www.6miu.com/read-84848.html

最新回复(0)