首页 > 其他分享 >BM5 合并k个已排序的链表

BM5 合并k个已排序的链表

时间:2022-12-30 23:00:39浏览次数:44  
标签:return lists 链表 pHead1 pHead2 BM5 mergeTwoList 排序

题目描述

合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。

思路分析

之前已经完成了两条有序链表的排序,那么对于任意条有序链表的合并我们都可以借助之前的方法。
借助之前的函数,每次传递一条链表进去,最终返回出一条链表

代码参考

/* 借助于之前的合并两条有序链表的函数来完成,
  每次传递两条链表进去,当数组为空时则返回我们要的那条链表
*/
function mergeKLists (lists) {
  // write code here
  let nodes = new ListNode(-1)
  let p = mergeTwoList(nodes.next, lists.pop())
  while (lists.length > 0) {
    p = mergeTwoList(p, lists.pop())
  }
  return p
  // return mergeTwoList(lists[0],lists[1])
}
function mergeTwoList (pHead1, pHead2) {
  if (pHead1 === null) return pHead2
  if (pHead2 === null) return pHead1
  const node = new ListNode(-1)
  let pre = node
  while (pHead1 && pHead2) {
    if (pHead1.val <= pHead2.val) {
      pre.next = pHead1
      pHead1 = pHead1.next
    } else {
      pre.next = pHead2
      pHead2 = pHead2.next
    }
    pre = pre.next
  }
  pre.next = pHead1 === null ? pHead2 : pHead1
  return node.next
}

标签:return,lists,链表,pHead1,pHead2,BM5,mergeTwoList,排序
From: https://www.cnblogs.com/zx529/p/17015998.html

相关文章

  • BM7 链表中环的入口结点
    题目描述思路分析做这道题我第一反应是用“记事本”,也就是将遍历过的节点存储起来,如果下次再遍历到这个节点,那么也就是环的入口节点。遍历节点,如果是遍历过的,那么就直接......
  • 刷刷刷Day3| 203.移除链表元素 ,707.设计链表 ,206.反转链表
    203.移除链表元素LeetCode题目要求给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。示例1输入:head=[......
  • 【归并排序】【链表】LeetCode 148. 排序链表
    题目链接148.排序链表思想分割cut环节:找到当前链表中点,并从中点将链表断开(以便在下次递归cut时,链表片段拥有正确边界)我们使用fast,slow快慢双指针法,奇数个......
  • 算法刷题 Day 3 | 203.移除链表元素 & 707.设计链表 & 206.反转链表
    203.移除链表元素建议:本题最关键是要理解虚拟头结点的使用技巧,这个对链表题目很重要。Tips:这道题本身没有什么难度,回顾一下链表的定义和虚拟头节点的使用即可我的......
  • 21. 合并两个有序链表
    背景这个题目一般用来学习数据结构时练手用。但我们今天只研究递归,按tag刷。题目链接:https://leetcode.cn/problems/merge-two-sorted-lists/description/递归解题一般......
  • 有向图的拓扑排序——DFS
    在有向图的拓扑排序——BFS这篇文章中,介绍了有向图的拓扑排序的定义以及使用广度优先搜索(BFS)对有向图进行拓扑排序的方法,这里再介绍另一种方法:深度优先搜索(DFS)。算法考虑......
  • 递归移除链表元素、翻转链表(leetcode easy 203、206)、设计链表(leetcode medium 707
    移除链表元素题目链接:https://leetcode.cn/problems/remove-linked-list-elements/思路:主要考虑移除元素后需要让被移除元素前置节点的next指向其后置节点,采用......
  • 归并排序 以及衍生作品 逆序数统计
     首先介绍归并排序: 国际惯例,我引入比喻,各位看官随意听听抽象代师。 我将归并排序比喻成“斗兽场排序”,什么意思呢?就是将原来的一个数组一分为二,将数字比喻斗士,A组B......
  • 64. 学生成绩排序
    64.学生成绩排序    大家参加了期末考试,成绩出来后老师要对n个学生进行成绩汇总和排序。要求程序按成绩降序进行排序。在排序过程中对于成绩相同的学生,要按照......
  • Java 自定义Excel数据排序
    通常,我们可以在Excel中对指定列数据执行升序或者降序排序,排序时可依据单元格中的数值、单元格颜色、字体颜色或图标等。在需要自定义排序情况下,我们也可以自行根据排序需要......