当前位置: 首页 > wzjs >正文

香山红叶建设有限公司网站hyein seo

香山红叶建设有限公司网站,hyein seo,一站式推广平台,炎推小说推广下载23. 合并 K 个升序链表 - 力扣(LeetCode) 1.数组排序 思路 (1)将全部的节点存储到数组中 (2)对数组进行排序 (3)最后创建一个全新的链表 具体代码 /*** Definition for singly…

23. 合并 K 个升序链表 - 力扣(LeetCode)

1.数组排序

思路

(1)将全部的节点存储到数组中

(2)对数组进行排序

(3)最后创建一个全新的链表

具体代码
/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode mergeKLists(ListNode[] lists) {int len=0;for(int i=0;i<lists.length;i++){ListNode p = lists[i];while(p!=null){len++;p=p.next;}}int[] arr = new int[len];int k=0;for(int i=0;i<lists.length;i++){ListNode p = lists[i];while(p!=null){arr[k++]=p.val;p=p.next;}}Arrays.sort(arr);ListNode head = new ListNode();ListNode ans = head;for(int i=0;i<len;i++){ListNode newn = new ListNode();newn.val=arr[i];head.next=newn;head=newn;}return ans.next;}
}

2.两两比较合成链表

思路

两两合并,也就是for循环,每次两个链表进行合并,最后输出结果。

具体步骤:

(1)判断链表是否为空,不是空则p=lists[0]

(2)将p与lists中下一个列表合并,采用之前写过的两两合并方法。

(3)每次结束后后需要将p归为到原始节点,重新与下一个链表合并。

具体代码
/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode mergeKLists(ListNode[] lists) {if(lists.length==0){return null;}ListNode p = lists[0];  for(int i=1 ; i<lists.length;i++){ListNode con = new ListNode();ListNode init = con;ListNode np = lists[i];while(p != null && np != null){if(p.val<=np.val){con.next=p;con=con.next;p=p.next;}else{con.next=np;con=con.next;np=np.next;}}if(p==null){con.next=np;}else{con.next=p;}p=init.next;}return p;}
}

3.优先队列

思路

将链表放入优先队列中(小顶堆),每次循环都去最小的加入新链表,直到队列为空。

具体步骤:
(1)构造优先队列

(2)将各个链表的首节点放入队列

(3)将最小的节点加入链表,然后该节点进入下一个位置,如果不是空的,则加入队列。

具体代码
/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode mergeKLists(ListNode[] lists) {PriorityQueue<ListNode> pq = new PriorityQueue<>((o1,o2)->{return o1.val-o2.val;});for(ListNode node:lists){if(node!=null){pq.offer(node);}}ListNode ans = new ListNode();ListNode cur = ans;while(!pq.isEmpty()){ListNode s=pq.poll();cur.next=s;cur=cur.next;if(s.next!=null){s=s.next;pq.offer(s);}}return ans.next;}
}

http://www.dtcms.com/wzjs/530635.html

相关文章:

  • 做网站新闻站长查询域名
  • 区域网站查询搜索引擎优化的方式有哪些
  • 做网站的需要什么软件it培训机构出来能找到工作吗
  • 建个静态网站搜索引擎优化seo培训
  • 柳州房地产网站建设长沙本地推广
  • hdwiki做网站克州seo整站排名
  • 将自己做的网站入到阿里云域名上全网营销推广 好做吗
  • 网站留言板漏洞外贸网站建设推广
  • 建设部网站1667号下载建设官网的网站首页
  • 自己做家具展示网站2023第二波疫情已经到来
  • 常州做企业网站的公司网站优化推广招聘
  • 上门做美容的网站购买域名后如何建立网站
  • 书店网站开发今日头条官网首页
  • 武汉做网站公司电话百度快速排名平台
  • 连云港建设局网站站长工具pr值查询
  • 设计app界面网站关键词优化价格
  • 怎么样推销自己网站山东关键词快速排名
  • 手机网站特效代码网站流量统计
  • 山东省住房城乡建设厅查询网站首页seo和sem是什么意思
  • 环境设计专业网站上海短视频培训机构
  • wordpress情侣网站源码谷歌排名优化
  • 安徽建设监管网站网站排名搜索
  • 网站免费正能量加载要快营销软文广告
  • 免费注册网站云空间手机优化管家
  • 椒江做国际网站的公司文案代写在哪里接单子
  • 深圳企业网站建设维护移动网站优化排名
  • 网站名字备案seo优化技术
  • 小型购物网站开发费用互联网最赚钱的行业
  • 泉州seo不到首页不扣费深圳百度seo代理
  • 网站建设合同 英文百度推广系统营销平台