コード例 #1
0
    ListNode* mergeKLists(vector<ListNode*>& lists) {
      int n = lists.size();
      if(n == 0)return NULL;
      while(n >1)
      {
	int k = (n+1)/2;
	for(int i = 0; i < n/2; i++)
	  lists[i] = merge2list(lists[i], lists[i + k]);
	n = k;
      }
      return lists[0];
    }
コード例 #2
0
ファイル: linked_list.cpp プロジェクト: ericyinliang/myproj
ListNode *merge_k_lists(vector<ListNode *> lists)
{
    // empty lists
    if (lists.size() <= 0)
        return NULL;
        
    if (lists.size() == 1)
        return lists[0]; // single list

    ListNode *p = lists[0];
    for(int i = 1; i < lists.size(); i++) {
        p = merge2list(p, lists[i]);
    }
    
    return p;
}