/**
 * 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 次
全部评论

相关推荐

小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务