Golang:
思路:晚上的效率很低,写代码的感觉也差到了极点。。。
代码如下:
func mergeKLists(lists []*ListNode) *ListNode {
length:=len(lists)
if length==0{
return nil
}
for length!=1{
for i:=0;i<length/2;i++{
lists[i]=mergeTwoLists(lists[i],lists[length-i-1])
}
if length%2==0 {
length=length/2
}else{
length=length/2+1
}
}
return lists[0]
}
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
res:=&ListNode{Val:0}
head:=res
for {
if l1==nil{
res.Next=l2
break
}
if l2==nil{
res.Next=l1
break
}
if l1!=nil&&l2!=nil{
if l1.Val<l2.Val{
res.Next=l1
l1=l1.Next
res=res.Next
}else{
res.Next=l2
l2=l2.Next
res=res.Next
}
}
}
return head.Next
}
有疑问加站长微信联系(非本文作者)