当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

LeetCode[链表] - #21 Merge Two Sorted Lists

发表于: 2015-07-21   作者:Cwind   来源:转载   浏览:
摘要: 原题链接:#21 Merge Two Sorted Lists   要求: 合并两个已排序的单向链表,将合并后的结果作为一个链表返回。 ListNode定义: public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } }   难度:简单

原题链接:#21 Merge Two Sorted Lists

 

要求:

合并两个已排序的单向链表,将合并后的结果作为一个链表返回。

ListNode定义:

public class ListNode {
    int val;
    ListNode next;
    ListNode(int x) { val = x; }
}

 

难度:简单

 

分析:

由于两个链表均已排好序,令两个指针指向两个链表的头节点,每次取出两个指针中值较小的一个节点,然后将指针后移。当一个链表遍历完以后,将另一个链表的剩余部分拼接到结果链表的尾部即可。

 

解决方案:

Java - 304ms    

public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        if(l1==null){
            return l2;
        }
        if(l2==null){
            return l1;
        }
        if(l1.val>l2.val){
            l2.next = mergeTwoLists(l1, l2.next);
            return l2;
        }else{
            l1.next = mergeTwoLists(l1.next, l2);
            return l1;
        }
    }

 简单测试程序

 

LeetCode[链表] - #21 Merge Two Sorted Lists

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号