示例1: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4
思路非常简单:
1 定义个伪头结点,然后 定义个cur当前节点等于伪头结点 2 来个循环判断最小值 ,然后让cur .next指向他,不断更新 cur 3 然后判断是否一个为空另一个不是空,然后cur.next指向 非空的那个 4 返回伪头结点的 next
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
//声明伪头结点
ListNode defNode=new ListNode(0);ListNode cur=defNode;
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=cur.next;
}
//循环结束万一 一方为空,另一方不为空的话
cur.next=(l1==null?l2:l1);
return defNode.next;
}
}