多个有序链表合并成一个有序链表的C++递归实现
主体思想:
1.多个有序链表看成是一个二维链表,此二维链表在 y 轴方向是有序的,x轴方向是无序的
2.在x 轴方向(x=0),找出此维度最小的元素(可以输出了),
3.将此元素置于x 轴最大的地方,重新将 y=x 的这一条有序链表 沿 y 轴方向移动 -1 (当此链表没有元素 存在 y>= 0了,删除此一维链表).
4.重复在 x=0 这一层找到最小的元素,重复 3、4 。(可以递归了)
注意:
1.递归的判断条件 -- 二维链表是否为空
2.初始化 vector 的时候,请注意不要仅初始化 vector <ListNode*> * , 这个是仅初始化了一个指针,并没有初始化 vector ,我花了很久来调这个较低