题解 | #合并两个排序的链表 02#
合并两个排序的链表
https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337
import java.util.ArrayList;
import java.util.Collections;
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
// list1 list2为空的情况
if(list1==null) return list2;
if(list2==null) return list1;
if(list1 == null && list2 == null){
return null;
}
//将两个两个链表存放在list中
ArrayList<Integer> list = new ArrayList<>();
// 遍历存储list1
while(list1!=null){
list.add(list1.val);
list1 = list1.next;
}
// 遍历存储list2
while(list2!=null){
list.add(list2.val);
list2 = list2.next;
}
// 对 list 排序
Collections.sort(list);
// 将list转换为 链表
ListNode newHead = new ListNode(list.get(0));
ListNode cur = newHead;
for(int i=1;i<list.size();i++){
cur.next = new ListNode(list.get(i));
cur = cur.next;
}
// 输出合并链表
return newHead;
}
}
创建一个数组链表list,将两个链表的数放进list
对整个list进行排序
排序好后的list转换为链表


