题解 | #合并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
}

全部评论

相关推荐

感觉怪怪的,有时候莫名其妙说我适合硬件给我干到硬件开发去
嵌入式的小白:你这主修课程,和项目,都偏硬件啊
点赞 评论 收藏
分享
Java抽象带篮子:投java岗就写java,真别写c,c++,python,css了,进去让你搞这些你又不乐意
点赞 评论 收藏
分享
ResourceUt...:楼主有自己的垃圾箱,公司也有自己的人才库
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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