问题:设计一个时间复杂度为O(n*lgk)的算法,它能够将k个有序链表合并为一个有序表,这里n是所有输入链表包含的总的元素个数
下面是节点Node的定义
#pragma once
class Node {
public:
Node(int v) :value(v),next(nullptr){ }
void setNext(Node* n) { next=n; }
Node* getNext() { return next; }
int getValue() { return value; }
private:
int value;
Node* next;
};
代码实现,按从大到小排序
#include<iostream>
#include<fstream>
#include<vector>
#include"Node.h"
using std::ifstream; using std::cout; using std::endl;
using std::vector;
int main() {
void printHeap(const vector<Node*>& h);