题解 | #合并两个排序的链表#
合并两个排序的链表
http://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
//链表判空处理,链表1为空,则返回链表2
if(list1 == null){
return list2;
}
//链表判空处理,链表2为空,则返回链表1
if(list2 == null){
return list1;
}
//链表1.2都不为空
// //方法一:迭代遍历
// //初始化合并链表后的表头
// ListNode head = null;
// ListNode head0 = null;
// if(list1.val <= list2.val){
// head = list1;
// head0 = list1;
// list1 = list1.next;
// }else{
// head = list2;
// head0 = list2;
// list2 = list2.next;
// }
// //当链表1,2,都不为空时,判断链表1,2,的头结点的值大小,谁小谁在前头
// while(list1 != null & list2 != null){
// if(list1.val <= list2.val){
// head0.next = list1;
// head0 = list1;
// list1 = list1.next;
// }else{
// head0.next = list2;
// head0 = list2;
// list2 = list2.next;
// }
// }
// //当链表1为空时,接着链表2
// if(list1 == null){
// head0.next = list2;
// }else{//当链表2为空时,接着链表1
// head0.next = list1;
// }
// return head;
//方法二:递归遍历
//判断链表1,2,的头结点的值大小,谁小谁在前头
if(list1.val <= list2.val){
list1.next = Merge(list1.next,list2);
return list1;
}else{
list2.next = Merge(list1,list2.next);
return list2;
}
}
}