Merge k Sorted Lists
2016-07-08 09:36
190 查看
Subscribe to see which companies asked this question
思路:进行 lists.size() 次合并俩个有序链表
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* mergeKLists(vector<ListNode*>& lists) { ListNode *ans=new ListNode(0); for(int i=0;i<lists.size();i++){ ListNode *cur_ans=ans->next; ListNode *cur_answer=new ListNode(0); ListNode *cur=cur_answer; while(cur_ans && lists[i]){ if(lists[i]->val<cur_ans->val){ cur->next=lists[i]; lists[i]=lists[i]->next; cur=cur->next; } else{ cur->next=cur_ans; cur_ans=cur_ans->next; cur=cur->next; } } if(lists[i]){ cur->next=lists[i]; } if(cur_ans){ cur->next=cur_ans; } ans->next=cur_answer->next; } return ans->next; } };
相关文章推荐
- [C/C++]反转链表
- C#实现基于链表的内存记事本实例
- C#模拟链表数据结构的实例解析
- C语言实现带头结点的链表的创建、查找、插入、删除操作
- C++利用静态成员或类模板构建链表的方法讲解
- C++实现简单的学生管理系统
- Linux内核链表实现过程
- C++链表倒序实现方法
- C#通过链表实现队列的方法
- Node.js环境下JavaScript实现单链表与双链表结构
- C#实现的简单链表类实例
- 找出链表倒数第n个节点元素的二个方法
- Java数据结构之简单链表的定义与实现方法示例
- Java模拟有序链表数据结构的示例
- C语言单循环链表的表示与实现实例详解
- C++实现的链表类实例
- PHP小教程之实现链表
- PHP中模拟链表和链表的基本操作示例
- C语言双向链表的表示与实现实例详解
- js链表操作(实例讲解)