题目:
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
示例1:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
限制:
0 <= 链表长度 <= 1000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof
题解:
方法一:直接进行每个节点判断
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode res = new ListNode();
ListNode cur = res;
while(l1!=null || l2!=null){
if(l1 != null){
if(l2 != null){
if(l1.val <= l2.val){
cur.next = l1;
l1 = l1.next;
}else{
cur.next = l2;
l2 = l2.next;
}
}else{
cur.next = l1;
l1 = l1.next;
}
}else{
cur.next = l2;
l2 = l2.next;
}
cur = cur.next;
}
return res.next;
}
方法二:判断节点,当其中一个链表为空时,直接接在后面,不用单个节点遍历
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode res = new ListNode(0);
ListNode cur = res;
while(l1!=null && l2!=null){
if(l1.val <= l2.val){
cur.next = l1;
l1 = l1.next;
}else{
cur.next = l2;
l2 = l2.next;
}
cur = cur.next;
}
cur.next = (l1 != null ? l1:l2);
return res.next;
}