zoukankan      html  css  js  c++  java
  • Leetcode 21. Merge Two Sorted Lists

    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/

  • 相关阅读:
    window.location.href 失效的解决办法
    jquery.pagination.js分页
    64位WIN7+oracle11g+plsql安装
    uiZjs入门
    dateTimePicker的使用,时间控件
    jquery+ajax(用ajax.dll)实现无刷新分页
    用Jquery获取select的value和text值
    Asp.net上传文件Request.files获取不到文件
    手动导出Excel方法
    编写高质量代码改善C#程序的157个建议——建议121:为应用程序设定运行权限
  • 原文地址:https://www.cnblogs.com/anne-vista/p/4799791.html
Copyright © 2011-2022 走看看