题目描述:
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
示例1:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
题解:
- 使用 dummy.next 来保存需要返回的头节点
- 判断 l1 和 l2 哪个更小,就把这个节点接到下一个
- 使用指向指针的指针 pp 用来存储更小的一边的指针
- 在帮助 dummy 连接之后,还可以控制更小的 l1 或 l2 向后移动
- 直到有一边为 null ,即可将另一边剩余的都接上
class Solution_25 {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode dum = new ListNode(0);
ListNode pre = dum;
while (l1 != null && l2 != null){
if (l1.val >= l2.val){
pre.next = l2;
l2 = l2.next;
}else{
pre.next = l1;
l1 = l1.next;
}
pre = pre.next;
}
pre.next = l1 != null ? l1 : l2;
return dum.next;
}
}