将k个有序链表合并成一个有序链表
来源:互联网 发布:linux lvm 编辑:程序博客网 时间:2024/05/21 21:08
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
我的代码如下:
package 训练;import java.util.*;import org.w3c.dom.Node;public class 合并有序链表 { public static void main(String[] args){ Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int n=Integer.parseInt(sc.nextLine()); ArrayList<ListNode> arr=new ArrayList<>(); String[] str=new String[n]; for(int i=0;i<n;i++){ str[i]=sc.nextLine(); String[] s=str[i].split(" "); ListNode head=new ListNode(Integer.parseInt(s[0])); ListNode node=head; for(int j=1;j<s.length;j++){ node.next=new ListNode(Integer.parseInt(s[j])); node=node.next; } arr.add(head); } ListNode chead=mergeKLists(arr); while(chead!=null){ System.out.print(chead.val+" "); chead=chead.next; } System.out.println(); } } static ListNode mergeKLists(ArrayList<ListNode> lists){ int n=lists.size(); if(n<=0)return null; ListNode head=lists.get(0); for(int i=1;i<n;i++){ head=merge2Lists(head,lists.get(i)); } return head; } static ListNode merge2Lists(ListNode l1,ListNode l2){ ListNode head=null; ListNode node=null; while(l1!=null&&l2!=null){ if(head==null){ if(l1.val<=l2.val){ head=new ListNode(l1.val); l1=l1.next; } else{ head=new ListNode(l2.val); l2=l2.next; } node=head; } else{ if(l1.val<=l2.val){ node.next=new ListNode(l1.val); node=node.next; l1=l1.next; } else{ node.next=new ListNode(l2.val); node=node.next; l2=l2.next; } } } while(l1!=null){ if(head==null){ head=new ListNode(l1.val); node=head; l1=l1.next; } else{ node.next=new ListNode(l1.val); node=node.next; l1=l1.next; } } while(l2!=null){ if(head==null){ head=new ListNode(l2.val); node=head; l2=l2.next; } else{ node.next=new ListNode(l2.val); node=node.next; l2=l2.next; } } return head; }}
注意有的临界条件。
0 0
- 将k个有序链表合并成一个有序链表
- 将k个有序链表合并成一个有序链表
- 把k个有序表合并成一个有序表
- LeetCode 合并k个有序链表
- 合并k个有序链表
- 合并k个有序链表
- 合并K个有序链表
- 合并k个有序的链表
- 合并k个有序链表,使其成为一个有序链表
- Java将两个有序链表合并为一个有序链表、将两个有序数组合并成一个有序数组
- 合并k个有序链表 Merge k Sorted Lists
- 将两个有序链表合并成一个有序链表
- 将两个有序链表合并成一个有序链表
- 将两个有序链表合并成一个有序链表
- 将两个有序链表合并成一个有序链表
- 将两个有序链表合并成一个有序链表
- 将两个有序链表合并成一个有序链表
- 如何将两个有序链表合并成一个有序链表。
- Pixhawk原生固件PX4之TAKEOFF的启动流程
- 将k个有序链表合并成一个有序链表
- 转载:Ask HN: Relationship between OO and functional programming?
- 03-树2 List Leaves by python3
- 【USACO题库】3.1.1 Agri-Net最短网络
- 将k个有序链表合并成一个有序链表
- 表达式计算
- 抽象和封装
- DOS环境下cd命令的使用
- ZOJ
- 算法训练 斐波拉契
- 微信开发创建自定义菜单
- 眼球追踪如何预测头部追踪
- Struts.xml