思路:
这个和归并排序一样,两个数组中先挑小一点的连接到新链表上,当有一个链表遍历完成之后,将另一个链表的所以结点都续到新节点最后即可。
代码:
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
//新链表的起点
ListNode newhead = new ListNode(0);
//标志位置的引用
ListNode p1 = l1;
ListNode p2 = l2;
ListNode p = newhead;
//开始循环
while(p1 !=null && p2 !=null){
if(p1.val <= p2.val){
p.next = p1;
p1 = p1.next;
}else{
p.next = p2;
p2 = p2.next;
}
p = p.next;
}
//把剩下的链表都续上来
p.next = (p1 == null ? p2 : p1);
return newhead.next;
}
}