设为首页 加入收藏

TOP

LeetCode――Merge k Sorted Lists
2015-07-20 17:47:22 来源: 作者: 【 】 浏览:2
Tags:LeetCode Merge Sorted Lists

Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.

?

题目:归并 k 个有序链表,返回一个有序链表。

思路:之前有做过归并2个有序链表的题目,所以就想,将k个链表的归并简化成两两链表的归并。

?

	public ListNode mergeKLists(List
  
    lists){
		if(lists == null)
			return null;
		return mergeLists(lists,0,lists.size()-1);
	}
	public ListNode mergeLists(List
   
     lists,int start,int end) { if(start > end) return null; if(start==end) return lists.get(start); if(start+1 == end) return mergeTwoLists(lists.get(start),lists.get(end)); int mid = (start+end)/2; return mergeTwoLists(mergeLists(lists,start,mid),mergeLists(lists,mid+1,end)); } public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode p1 = l1, p2 = l2, dummy = new ListNode(-1), p = dummy; while (p1 != null && p2 != null) { if (p1.val <= p2.val) { p.next = p1; p1 = p1.next; } else { p.next = p2; p2 = p2.next; } p = p.next; } if (p1 != null) p.next = p1; if (p2 != null) p.next = p2; return dummy.next; } // Definition for singly-linked list. public class ListNode { int val; ListNode next; ListNode(int x) { val = x; next = null; } }
   
  


?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇UVA 1391 - Astronauts(2-SET) 下一篇codeforces A#264. Caisa and Sug..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)
·索引堆及其优化 - 菜 (2025-12-24 20:18:50)
·Shell 中各种括号的 (2025-12-24 19:50:39)
·Shell 变量 - 菜鸟教 (2025-12-24 19:50:37)