leetcode合并两个有序链表

题目:

leetcode合并两个有序链表_第1张图片

用遍历方法,创建一个新的链表,把两个链表比较得到的值都放入新的链表中,代码为:

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;
}
}

运行结果为:
leetcode合并两个有序链表_第2张图片

用递归方法

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;
}
    }
}

运行结果:

leetcode合并两个有序链表_第3张图片

你可能感兴趣的:(leetcode合并两个有序链表)