输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
示例1:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
思路:1.创建一个新的链表,并引入一个伪头节点a,并使一个新的节点b指向伪头节点
2.进行比较两个链表的大小,判断并将值赋给b节点
3.两个链表,当l1为空,将l2添加到b节点之后
4.合并的链表在伪节点a之后,返回a.next就好。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode a=new ListNode(0), b=a;
while(l1!=null && l2!=null){
if(l1.val<l2.val){
b.next=l1;
l1=l1.next;
}else{
b.next=l2;
l2=l2.next;
}
b=b.next;
}
b.next=l1!=null?l1:l2;
return a.next;
}
}