• Merge k Sorted Lists


    # Definition for singly-linked list.
    class ListNode:
    	def __init__(self, x):
    		self.val = x
    		self.next = None
    
    
    class Solution:
        # @param {ListNode[]} lists
        # @return {ListNode}
        def mergeKLists(self, lists):
        	my_lists=[]
        	for x in xrange(len(lists)):
        		if lists[x]!=None:
        			my_lists.append(lists[x])
        	if len(my_lists)<=0:
        		return my_lists
        	if len(my_lists)==1:
        		return my_lists[0]
        	my_lists.sort(cmp=lambda x,y:cmp(x.val,y.val))
        	d=[]
        	l=my_lists[0]
        	for i in range(0,len(my_lists)-1,2):
        		l=self.merge2lists(my_lists[i],my_lists[i+1])
        		d.append(l)
        	if len(my_lists)%2==1:
        		d.append(my_lists[len(my_lists)-1])
        	return self.mergeKLists(d)
    
        def merge2lists(self,list_1,list_2):
        	if list_1==None:
        		return list_2
        	if list_2==None:
        		return list_1
        	head_1=head_2=None
        	if list_1.val>=list_2.val:
        		head_1=list_1     #big
        		head=head_2=list_2#small
        	else:
        		head_1=list_2
        		head=head_2=list_1
        	while head_2.next!=None:
        		if head_2.next.val>head_1.val:
        			head_2.next,head_1=head_1,head_2.next
        		head_2=head_2.next
        	if head_1!=next:
        		head_2.next=head_1
        	return head
    
  • 相关阅读:
    (转载)一个好的软件开发人员的素质
    (转载)在Visual Studio 11 HTML5,CSS3和JavaScript的改进
    帧同步和状态同步
    3线性表
    1数据结构释义
    2数据结构中的算法
    CSharp错误记录
    pythondocx
    寒假学习进度
    寒假学习进度
  • 原文地址:https://www.cnblogs.com/iois/p/4633394.html
Copyright © 2020-2023  润新知