码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode 21. Merge Two Sorted Lists

时间:2016-06-02 08:26:54      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:

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.


解题思路:

The key to solve the problem is defining a fake head. Then compare the first elements from each list. Add the smaller one to the merged list. Finally, when one of them is empty, simply append it to the merged list, since it is already sorted.

谁小放谁进去。


Java code:

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
public class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        ListNode fakehead = new ListNode(0);
        ListNode p = fakehead;
        ListNode p1 = l1, p2 = l2;
       
        while(p1!= null && p2 != null) {
           if(p1.val <= p2.val) {
               p.next = p1;
               p1 = p1.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;
    }
}

20160601:

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
public class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        ListNode dummy = new ListNode(0);
        ListNode cur = dummy;
        while (l1 != null && l2 != null) {
            if (l1.val <= l2.val) {
                cur.next = l1;
                l1 = l1.next;
            } else {
                cur.next = l2;  
                l2 = l2.next;
            }
            cur = cur.next;
        }
        if (l1 != null) {
            cur.next = l1;
        }
        if (l2 != null) {
            cur.next = l2;
        }
        return dummy.next;
    }
}

 

Reference:

1. http://www.programcreek.com/2012/12/leetcode-merge-two-sorted-lists-java/

 

Leetcode 21. Merge Two Sorted Lists

标签:

原文地址:http://www.cnblogs.com/anne-vista/p/4799791.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!