/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func mergeKLists(lists []*ListNode) *ListNode {
if len(lists) == 0 {
return nil
}
if len(lists) == 1 {
return lists[0]
}
num := len(lists) / 2
l1 := mergeKLists(lists[:num])
l2 := mergeKLists(lists[num:])
return mergeTwo(l1, l2)
}
//这里必须写mergerTwo这个函数,不能用mergerKlists([]*ListNode{l1,l2})
func mergeTwo(l1 *ListNode, l2*ListNode) *ListNode {
if l1 == nil {
return l2
}
if l2 == nil {
return l1
}
if l1.Val < l2.Val {
l1.Next = mergeTwo(l1.Next, l2)
return l1
}
l2.Next = mergeTwo(l1, l2.Next)
return l2
}
//使用分治的思想, 参考leetcode book代码
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func mergeKLists(lists []*ListNode) *ListNode {
if len(lists) == 0 {
return nil
}
if len(lists) == 1 {
return lists[0]
}
num := len(lists) / 2
l1 := mergeKLists(lists[:num])
l2 := mergeKLists(lists[num:])
return mergeTwo(l1, l2)
}
//这里必须写mergerTwo这个函数,不能用mergerKlists([]*ListNode{l1,l2})
func mergeTwo(l1 *ListNode, l2*ListNode) *ListNode {
if l1 == nil {
return l2
}
if l2 == nil {
return l1
}
if l1.Val < l2.Val {
l1.Next = mergeTwo(l1.Next, l2)
return l1
}
l2.Next = mergeTwo(l1, l2.Next)
return l2
}
//使用分治的思想, 参考leetcode book代码
2022-05-15
在牛客打卡5天,今天学习:刷题 5 道/代码提交 6 次
全部评论
相关推荐
receive177...:性压抑了
点赞 评论 收藏
分享
06-23 12:08
广州大学 硬件测试 小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享