LeetCode -- Merge Two Sorted Linked List

Question:

  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.

Analysis:

  1)两个都是空串;

  2)一个是空串;

  3)新建一个伪头结点,用于新串的连接;

  4)最后还要检查是否有一个串还有数字。

Answer:

public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        ListNode p1 = l1;
        ListNode p2 = l2;
        
        if(l1 == null && l2 == null)
            return null;
        if(l1 == null && l2 != null)
            return l2;
        if(l1 != null && l2 == null)
            return l1;
        
        ListNode fakeHead = new ListNode(0);
        ListNode p = fakeHead;
        
        while (p1 != null && p2 != null){
            if (p1.val <= p2.val) {
                p.next = p1;
                p1 = p1.next;
                p = p.next;
            } else {
                p.next = p2;
                p2 = p2.next;
                p = p.next;
            }
        }
        
        if(p1 != null)
            p.next = p1;
        if(p2 != null)
            p.next = p2;
        return fakeHead.next;
        
      }

 

posted @ 2015-08-29 21:36  江湖小妞  阅读(206)  评论(0编辑  收藏  举报