用到三个指针,一个指向合并后链表节点,另外两个分别指向待比较的两个链表的节点
链表操作中经常会用到哑节点,也就是链表的一个头,但是这个‘头’是不返回的
用多了 发现哑节点狠香
public static ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode prehead = new ListNode(-1);//开头哑节点,链表题常用到
ListNode prev = prehead;
while (l1!=null && l2!=null){
if(l1.val<=l2.val){
prev.next=l1;
l1 = l1.next;
}else {
prev.next=l2;
l2 = l2.next;
}
prev=prev.next;
}
prev.next = l1==null?l2:l1;//循环结束后l1和l2最多只有一个没有完全合并完,我们直接将链表尾部指向未合并玩的即可
return prehead.next;
}