LeetCode之Merge k Sorted Lists
2013-12-26 20:42
120 查看
http://oj.leetcode.com/problems/merge-k-sorted-lists/
合并K个排序数组,由于对引用,指针的的理解不够深入,AC的过程略曲折
思路: 每次遍历,取出最小值的那个节点,进行链接操作后 该节点 指向它的下一个节点,遍历完成之后返回结果。
注意: WA的代码中,我是新建了一个指针变量用来存最小值节点的,指向下一节点更改的也是该指针,而vector中的
那些指针都没有改变。导致在while 死循环。改为修改该引用vector的指针元素即可。
AC代码
WA代码
合并K个排序数组,由于对引用,指针的的理解不够深入,AC的过程略曲折
思路: 每次遍历,取出最小值的那个节点,进行链接操作后 该节点 指向它的下一个节点,遍历完成之后返回结果。
注意: WA的代码中,我是新建了一个指针变量用来存最小值节点的,指向下一节点更改的也是该指针,而vector中的
那些指针都没有改变。导致在while 死循环。改为修改该引用vector的指针元素即可。
AC代码
class Solution { public: ListNode *mergeKLists(vector &lists) { ListNode *root = new ListNode(-1); ListNode *now_pos = root; while(1) { int min_pos = -1; for(int i = 0; i < lists.size(); i++) { if(min_pos == -1 && lists[i] != NULL) min_pos = i; if(min_pos != -1 && lists[i] != NULL && lists[min_pos]->val > lists[i]->val) min_pos= i; } if(min_pos == -1) break; now_pos->next = lists[min_pos]; now_pos = now_pos->next; lists[min_pos] = lists[min_pos]->next; } return root->next; } };
WA代码
class Solution { public: ListNode *mergeKLists(vector &lists) { ListNode *root = new ListNode(-1); ListNode *now_pos = root; while(1) { ListNode *min_pointer = NULL; for(int i = 0; i < lists.size(); i++) { if(min_pointer == NULL && lists[i] != NULL) min_pointer = lists[i]; if(min_pointer != NULL && lists[i] != NULL && min_pointer->val > lists[i]->val) min_pointer = lists[i]; } if(min_pointer == NULL) break; now_pos->next = min_pointer; now_pos = now_pos->next; min_pointer = min_pointer->next; } return root->next; } };
相关文章推荐
- Leetcode Merge k Sorted Lists 利用stl heap来实现
- [LeetCode]题解(python):021-Merge Two Sorted Lists
- 【Leetcode-Easy-21】Merge Two Sorted Lists
- LeetCode之Merge Two Sorted Lists
- Merge K Sorted Lists -- LeetCode
- LeetCode - 23. Merge k Sorted Lists
- leetcode hard模式专杀之23 merge k sorted lists
- 【LeetCode】Merge k Sorted Lists(java)
- [LeetCode] Merge Two Sorted Lists
- LeetCode---(21)Merge Two Sorted Lists
- LeetCode——Merge Two Sorted Lists
- LeetCode | Merge k Sorted Lists
- 2017-09-11 LeetCode_023 Merge k Sorted Lists
- [Leetcode] Merge k Sorted Lists
- [LeetCode] Merge k Sorted Lists
- [LeetCode]21.Merge Two Sorted Lists
- LeetCode Merge Two Sorted Lists
- leetcode-21-Merge Two Sorted Lists
- LeetCode-23. Merge k Sorted Lists
- leetcode 题解Merge Two Sorted Lists(有序链表归并)