首页 > 其他分享 >#yyds干货盘点# LeetCode 腾讯精选练习 50 题:合并K个升序链表

#yyds干货盘点# LeetCode 腾讯精选练习 50 题:合并K个升序链表

时间:2022-10-25 18:33:57浏览次数:54  
标签:yyds ListNode next 链表 aPtr bPtr 升序 null

题目:

给你一个链表数组,每个链表都已经按升序排列。

请你将所有链表合并到一个升序链表中,返回合并后的链表。

 

示例 1:

输入:lists = [[1,4,5],[1,3,4],[2,6]]

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

解释:链表数组如下:

[

 1->4->5,

 1->3->4,

 2->6

]

将它们合并到一个有序链表中得到。

1->1->2->3->4->4->5->6

示例 2:

输入:lists = []

输出:[]

示例 3:

输入:lists = [[]]

输出:[]

代码实现:

class Solution {
public ListNode mergeKLists(ListNode[] lists) {
ListNode ans = null;
for (int i = 0; i < lists.length; ++i) {
ans = mergeTwoLists(ans, lists[i]);
}
return ans;
}

public ListNode mergeTwoLists(ListNode a, ListNode b) {
if (a == null || b == null) {
return a != null ? a : b;
}
ListNode head = new ListNode(0);
ListNode tail = head, aPtr = a, bPtr = b;
while (aPtr != null && bPtr != null) {
if (aPtr.val < bPtr.val) {
tail.next = aPtr;
aPtr = aPtr.next;
} else {
tail.next = bPtr;
bPtr = bPtr.next;
}
tail = tail.next;
}
tail.next = (aPtr != null ? aPtr : bPtr);
return head.next;
}
}

标签:yyds,ListNode,next,链表,aPtr,bPtr,升序,null
From: https://blog.51cto.com/u_13321676/5795046

相关文章

  • #yyds干货盘点# LeetCode 腾讯精选练习 50 题:删除有序数组中的重复项
    题目:给你一个升序排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。由于在某些语言中不能......
  • JS数组针对某键的值进行升序和降序
    dictArraySort(dictArray,sortKey,sortType="ascending",isTime=false){if(!isTime){if(sortType=='ascending'){dictArray......
  • 1025 反转链表
    题目:给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转。例如:给定 L 为1→2→3→4→5→6,K 为3,则输出应该为3→2→1→6→5→4;如果 K 为4,......
  • #yyds干货盘点# 虚拟存储技术
    在常见的存储管理方案中,必须为每个作业分配足够的空间,以便装入全部信息。当主存空间不能满足作业要求时,作业便无法装入主存执行,此时就可以使用虚拟存储技术。如果一个作业的......
  • 6-3 链表逆置
    本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头。链表结点定义如下:structListNode*reverse(structListNode*head){structListNode*p......
  • 7-2 双向循环链表应用
    已知p指向双向循环链表中的一个结点,其结点结构为data、prior、next三个域,实现交换p所指向的结点和它的前缀结点的顺序。#include<iostream>#defineElemTypeintusing......
  • #yyds干货盘点#ES6的扩展运算
    ES6通过扩展元素符​​...​​,好比 ​​rest​​ 参数的逆运算,将一个数组转为用逗号分隔的参数序列:console.log(...[1,2,3])//123console.log(1,...[2,3,4],5)//......
  • 力扣 114. 二叉树展开为链表-原地算法(O(1) 额外空间)详解
    114.二叉树展开为链表给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而......
  • Python 根据两个字段排序 中文排序 汉字排序 升序 降序
    Python根据两个字段排序中文排序汉字排序升序降序Python根据两个字段排序中文排序汉字排序升序降序Python根据两个字段排序中文排序汉字排序升序降序Pyt......
  • #yyds干货盘点# 动态规划专题:乘积为正数的最长连续子数组
    1.简述:描述给定一个长度为n的整数数组,请你找出其中最长的乘积为正数的子数组长度。子数组的定义是原数组中一定长度的连续数字组成的数组。数据范围:  ,数组中的元素满......