题目描述:Merge two sorted linked lists and return it as a new list. The
new list should be made by splicing together the nodes of the first
two lists.
解题思路:新建一个列表,依次将l1和l2中较小的结点的值赋给新节点。
代码如下:
/**
* 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 res = new ListNode(0);
ListNode p = res;
while(l1!=null||l2!=null){
if(l1==null){
p.next=l2;
break;
}
if(l2==null){
p.next=l1;
break;
}
if(l1.val==l2.val){
p.next=new ListNode(l1.val);
p.next.next=new ListNode(l2.val);
p=p.next.next;
l1=l1.next;
l2=l2.next;
}
else if(l1.val<l2.val){
p.next=new ListNode(l1.val);
p=p.next;
l1=l1.next;
}
else{
p.next=new ListNode(l2.val);
p=p.next;
l2=l2.next;
}
}
return res.next;
}
}