题目
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
解法方法: 归并解法
//归并解法
public static ListNode mergeTwoLists(ListNode l1, ListNode l2) {
//创建一个新的链表
ListNode HeadNode = new ListNode(0);
ListNode newNode = HeadNode;
while (l1!=null && l2!=null){
if(l1.val>=l2.val){
// System.out.println(newNode);
newNode.next = l2;
l2 = l2.next;
newNode = newNode.next;
}else{
newNode.next = l1;
l1 = l1.next;
newNode = newNode.next;
}
}
//循环结束 将l1或者l2里面剩余的结点,依次添加到链表里面去
while (l1!=null){
newNode.next = l1;
newNode = newNode.next;
l1 = l1.next;
}
while (l2!=null){
newNode.next = l2;
newNode = newNode.next;
l2 = l2.next;
}
return HeadNode.next;
}