- 21。合并两个有序链表
原来写代码,这个代码写的超长。先有了昨天那个O(1)的题,对于链表,新建head结点,而不是head初始化为null。可以优化代码
public class Test {
public static ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if(l1==null&&l2==null)return null;
ListNode head=new ListNode(0);
ListNode pre=head;
while(true) {
if(l1==null&&l2==null)break;
else if(l1==null||(l2!=null&&l1.val>l2.val)) {
pre.next=l2;
pre=pre.next;
l2=l2.next;
}else if(l2==null||l1.val<=l2.val) {
pre.next=l1;
pre=pre.next;
l1=l1.next;
}
}
return head.next;
}
}