题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
解题思路:
构建一个空的新链表,然后对原来两个链表中的节点两两进行比较,第一次比较小的节点将作为新链表的头节点;
最后在依次比较后续的节点并放到新的链表中,最后返回新链表的头节点即可。
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
if(list1 == null){
return list2;
}
else if(list2 == null){
return list1;
}
ListNode temp1 = list1;
ListNode temp2 = list2;
ListNode lt = null;
if(temp1.val > temp2.val){
lt = temp2;
temp2=temp2.next;
}
else{
lt = temp1;
temp1=temp1.next;
}
ListNode head=lt;
while(temp1 != null && temp2 != null){
if(temp1.val<temp2.val){
lt.next = temp1;
temp1 = temp1.next;
lt=lt.next;
}
else{
lt.next = temp2;
temp2 = temp2.next;
lt=lt.next;
}
}
if(temp1 == null){
lt.next = temp2;
}
else{
lt.next = temp1;
}
return head;
}
}