euisblue
23. Merge k Sorted Lists

Ruby

1# Definition for singly-linked list. 2# class ListNode 3# attr_accessor :val, :next 4# def initialize(val = 0, _next = nil) 5# @val = val 6# @next = _next 7# end 8# end 9# @param {ListNode[]} lists 10# @return {ListNode} 11def merge_k_lists(lists) 12 nodes = [] 13 lists.each do |head| 14 while head 15 nodes << head.val 16 head = head.next 17 end 18 end 19 20 return [] if nodes.empty? 21 22 nodes.sort! 23 new_list = ListNode.new(nodes[0]) 24 curr = new_list 25 size = nodes.size 26 for i in 1...size 27 curr.next = ListNode.new(nodes[i]) 28 curr = curr.next 29 end 30 31 new_list 32end