题目描述
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
实现代码
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode newHead = new ListNode(-1); //创建一个哑结点,方便后面表示新的链表头
ListNode tmp = newHead;
//判断l1指向结点的值与l2指向结点的值谁大谁小,较小值的结点放在tmp后面
while(l1 != null && l2 != null){
if(l1.val < l2.val){
tmp.next = l1;
l1 = l1.next;
tmp = tmp.next;
}else{
tmp.next = l2;
l2 = l2.next;
tmp = tmp.next;
}
}
//此时一定有某个链表为空,进行下列判断,当l1为空时,直接把12剩余结点放在tmp后面
//同理l2为空时,直接把l1剩余结点放在tmp后面
if(l1 == null){
tmp.next = l2;
}
if(l2 == null){
tmp.next = l1;
}
return newHead.next; //返回新的链表表头
}
}
自己在IDEA上测试实例后结果