leetcode 23

方法一

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:
        tempArray = list()
        for l in lists:
            while l:
                tempArray.append(l.val)
                l = l.next
        tempArray.sort(reverse = False)

        resNode = tempNode = ListNode(0)

        for t in tempArray:
            tempNode.next = ListNode(t)
            tempNode = tempNode.next
        
        return resNode.next

方法二

#还有一个类似方法一的做法,就是通过python的一个库-->heapq来实现push和pop操作,其中弹出的元素为堆中最小的element

#heappush(heap, item) # pushes a new item on the heap

#item = heappop(heap) # pops the smallest item from the heap

class Solution(object):
    def mergeKLists(self, lists):
        """
        :type lists: List[ListNode]
        :rtype: ListNode
        """
        if not lists or len(lists) == 0:
            return None
        import heapq
        heap = []
        # 首先 for 嵌套 while 就是将所有元素都取出放入堆中
        for node in lists:
            while node:
                heapq.heappush(heap, node.val)
                node = node.next
        dummy = ListNode(None)
        cur = dummy
        # 依次将堆中的元素取出(因为是小顶堆,所以每次出来的都是目前堆中值最小的元素),然后重新构建一个列表返回
        while heap:
            temp_node = ListNode(heappop(heap))
            cur.next = temp_node
            cur = temp_node
            #print(heap)
        return dummy.next

相关推荐

  1. leetcode 23

    2024-04-23 01:20:06       16 阅读
  2. LeetCode--26

    2024-04-23 01:20:06       35 阅读
  3. Leetcode--27

    2024-04-23 01:20:06       32 阅读
  4. leetcode 24

    2024-04-23 01:20:06       27 阅读
  5. LeetCode 21

    2024-04-23 01:20:06       18 阅读
  6. LeetCode day25

    2024-04-23 01:20:06       41 阅读
  7. LeetCode day26

    2024-04-23 01:20:06       51 阅读
  8. LeetCode day28

    2024-04-23 01:20:06       44 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 01:20:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 01:20:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 01:20:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 01:20:06       18 阅读

热门阅读

  1. lazarus-ide简介

    2024-04-23 01:20:06       15 阅读
  2. 安卓功耗分析

    2024-04-23 01:20:06       11 阅读
  3. Android开发——ListView

    2024-04-23 01:20:06       12 阅读
  4. mybatis和mybatis-plus的区别

    2024-04-23 01:20:06       14 阅读
  5. nginx根据二级目录转发服务以及带/和不带/的区别

    2024-04-23 01:20:06       18 阅读
  6. Rust 模式匹配中的& 和 ref

    2024-04-23 01:20:06       14 阅读
  7. RedisHttpSession反序列化UID问题跟踪

    2024-04-23 01:20:06       14 阅读
  8. 【Git】git revert 命令(撤销 commit 改动)

    2024-04-23 01:20:06       22 阅读
  9. 深度学习概念

    2024-04-23 01:20:06       13 阅读
  10. AJAX请求(axios篇)

    2024-04-23 01:20:06       14 阅读
  11. UDF小白入门

    2024-04-23 01:20:06       14 阅读