zoukankan      html  css  js  c++  java
  • leetcode-hard-ListNode-23. Merge k Sorted Lists

    mycode   91.2%

    # Definition for singly-linked list.
    # class ListNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.next = None
    
    class Solution(object):
        def mergeKLists(self, lists):
            """
            :type lists: List[ListNode]
            :rtype: ListNode
            """
            
            res = []
            for li in lists:
                while li:
                    res.append(li.val)
                    li = li.next
            if not res :
                return None
            res = sorted(res)
            print(res)
            length = len(res)
            i = 0
            dummy = head = ListNode(-1)
            while i < length: 
                head.next = ListNode(res[i])
                head = head.next   
                i += 1
            return dummy.next

    但是下面的这个代码最后的链表就只有1一个val

    # Definition for singly-linked list.
    # class ListNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.next = None
    
    class Solution(object):
        def mergeKLists(self, lists):
            """
            :type lists: List[ListNode]
            :rtype: ListNode
            """
            
            res = []
            for li in lists:
                while li:
                    res.append(li.val)
                    li = li.next
            if not res :
                return None
            res = sorted(res)
            print(res)
            length = len(res)
            i = 0
            dummy = head = ListNode(res[0])
            head = head.next
            while i < length - 1:
                i += 1
                #print(i)
                head = ListNode(res[i])
                #print(head.val)
                head = head.next
            return dummy
    Input:[[1,4,5],[1,3,4],[2,6]]
    Output:[1]
    Expected:[1,1,2,3,4,4,5,6]
    Stdout:[1, 1, 2, 3, 4, 4, 5, 6]
     
     
    参考
    class Solution:
        def mergeKLists(self, lists):
            nums, dum = [], ListNode(0)
            p = dum
            for l in lists:
                while l:
                    nums.append(l)
                    l = l.next
            for i in sorted(nums, key = lambda l: l.val):
                p.next = i
                p = p.next
            return dum.next
            
  • 相关阅读:
    深入理解javascript原型和闭包(5)——instanceof
    深入理解javascript原型和闭包(4)——隐式原型
    启动mongodb的方式
    继承的几种方式
    npm install express 安装失败
    npm insta --savell和npm install --save-dev的区别
    express笔记之一安装
    mongoVUE安装配置
    nodejs笔记之一简介
    nodejs配置之二NPM配置之gulp使用时出现的错误
  • 原文地址:https://www.cnblogs.com/rosyYY/p/11050007.html
Copyright © 2011-2022 走看看