题目:
用遍历方法,创建一个新的链表,把两个链表比较得到的值都放入新的链表中,代码为:
public class Solution {
public ListNode MergeTwoLists(ListNode l1, ListNode l2) {
ListNode dummyHead = new ListNode(0);
ListNode cur = dummyHead;
while (l1 != null || l2 != null){
if (l1 == null) {
cur.next = l2;
l2 = l2.next;
} else if (l2 == null) {
cur.next = l1;
l1 = l1.next;
} else {
if (l1.val > l2.val) {
cur.next = l2;
l2 = l2.next;
} else {
cur.next = l1;
l1 = l1.next;
} } cur = cur.next;
}
return dummyHead.next;
}
}
运行结果为:
用递归方法
public class Solution {
public ListNode MergeTwoLists(ListNode l1, ListNode l2) {
if (l1==null)
return l2;
if(l2==null)
return l1;
if(l1.val<=l2.val)
{
l1.next=MergeTwoLists(l1.next,l2);
return l1;
}else
{
l2.next=MergeTwoLists(l1,l2.next);
return l2;
}
}
}