算法每日一刷

LeetCode算法题-23. 合并K个排序链表(Swift)

2019-10-14  本文已影响0人  entre_los_dos

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/merge-k-sorted-lists
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题目

合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。

示例:

输入:
[
  1->4->5,
  1->3->4,
  2->6
]
输出: 1->1->2->3->4->4->5->6

方法-遍历node,将所有的val加到数组,排序后,添加到新的node中,即为结果

func mergeKLists(_ lists: [ListNode?]) -> ListNode? {
            
            var valArr = [Int]()
            let node: ListNode = ListNode(0)
            var lastNode = node
            
            
            for var listNode in lists {
                
               while listNode != nil {
                   valArr.append(listNode!.val)
                   listNode = listNode?.next
               }
            }
            valArr = valArr.sorted()
            
            for num in valArr {
                let currentNode: ListNode = ListNode(num)
                lastNode.next = currentNode
                lastNode = lastNode.next!
            }
            return node.next
        
    }
image.png
上一篇下一篇

猜你喜欢

热点阅读