21. 合并两个有序链表 - 力扣(LeetCode) (leetcode-cn.com)
思路:
①新建傀儡节点newHead,用于添加后续节点
②遍历两个链表,比较第一个链表当前节点的值和第二个链表当前节点的值,较小的放在新链表末尾
③遍历完成后,其中一个链表已经走完,将没走完的加到新链表的末尾
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode newHead=new ListNode(-1);
ListNode cur=newHead;
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;
}
while(l1!=null){
cur.next=l1;
cur=cur.next;
l1=l1.next;
}
while(l2!=null){
cur.next=l2;
cur=cur.next;
l2=l2.next;
}
return newHead.next;
}