题解 | #合并k个已排序的链表# O(n) O(n)

合并k个已排序的链表

https://www.nowcoder.com/practice/65cfde9e5b9b4cf2b6bafa5f3ef33fa6

package main

import . "nc_tools"

/*
 * type ListNode struct{
 *   Val int
 *   Next *ListNode
 * }
 */

/**
 *
 * @param lists ListNode类一维数组
 * @return ListNode类
 */
func mergeKLists(lists []*ListNode) *ListNode {

	// write code here
	nodeMap := make(map[int][]*ListNode)
	for _, list := range lists {
		for list != nil {
			if _, ok := nodeMap[list.Val]; !ok {
				nodeMap[list.Val] = make([]*ListNode, 0)
			}
			nodeMap[list.Val] = append(nodeMap[list.Val], list)
            list=list.Next
		}

	}
	head := &ListNode{}
	res := head
	var i int
	for i = -1000; i < 1000; i++ {
		for _, node := range nodeMap[i] {
			head.Next = node
			head = head.Next
		}
	}
	return res.Next
}

全部评论

相关推荐

屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
今天 14:08
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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