zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    android大作业------任务领取
    读书笔记《编程珠矶》2
    学习进度第8周
    学习进度第7周
    世界疫情可视化展示-----echarts
    读书笔记《编程珠矶》1
    团队项目新闻app的需求分析
    学习进度第6周
    团队合作项目
    SpringMVC01
  • 原文地址:https://www.cnblogs.com/iois/p/4633394.html
Copyright © 2011-2022 走看看