题解 | #合并两个排序的链表#
合并两个排序的链表
http://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337
获取节点的值,进行排序,之后重新构建链表,注意构建链表时,引入第三变量。
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
import java.util.ArrayList;
import java.util.Collections;
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
if (list1 == null && list2 == null) {return null;}
if (list1 == null && list2 != null) {return list2;}
if (list1 != null && list2 == null) {return list1;}
ArrayList<Integer> list = new ArrayList<>();
while (list1 != null) {
list.add(list1.val);
list1 = list1.next;
}
while (list2 != null) {
list.add(list2.val);
list2 = list2.next;
}
Collections.sort(list);
// ListNode result = null;
ListNode result = new ListNode(list.get(0));
ListNode re = result;
for (int i = 1; i < list.size(); i++) {
ListNode node = new ListNode(list.get(i));
result.next = node;
result = result.next;
}
// for (Integer integer : list) {
// ListNode node = new ListNode(integer);
// result = node;
// result = result.next;
// }
return re;
}
}