zoukankan      html  css  js  c++  java
  • 【剑指offer】16 合并两个排序的链表

    题目地址:合并两个排序的链表

    题目描述                                   

    输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
       

    题目示例                                   

    输入:
    {1,3,5},{2,4,6}
    返回值:
    {1,2,3,4,5,6}

    解法分析                                   

    因为给出的两个链表都是单调递增的,合并后的链表也是单调不递减,所以我们只需要对比两个链表的头结点即可,若哪个链表的头结点更小,就记录在新链表中,然后该链表头结点指向后一个结点,直到两个链表都指向null。返回做记录的新链表即可。见算法1。

    因为需要不断比较两个链表的头结点,所以我们也可以考虑使用递归方法,见算法2。

    代码                                         

    算法1

     1 /*function ListNode(x){
     2     this.val = x;
     3     this.next = null;
     4 }*/
     5 function Merge(pHead1, pHead2)
     6 {
     7     // write code here
     8     if(pHead1 === null) return pHead2;
     9     if(pHead2 === null) return pHead1;
    10     var pHead = new ListNode(0);
    11     var cur = pHead;
    12     while(pHead1 && pHead2){
    13         if(pHead1.val <= pHead2.val){
    14             cur.next = pHead1;
    15             pHead1 = pHead1.next;
    16         }else{
    17             cur.next = pHead2;
    18             pHead2 = pHead2.next;
    19         }
    20         cur = cur.next;
    21     }
    22     cur.next = pHead1 ? pHead1 : pHead2;
    23     return pHead.next;
    24 }

    算法2

     1 function Merge(pHead1, pHead2)
     2 {
     3     // write code here
     4     if(pHead1 === null) return pHead2;
     5     if(pHead2 === null) return pHead1;
     6     var pHead = null;
     7     if(pHead1.val <= pHead2.val){
     8         pHead = pHead1;
     9         pHead.next = Merge(pHead1.next, pHead2);
    10     }else{
    11         pHead = pHead2;
    12         pHead.next = Merge(pHead1, pHead2.next);
    13     }
    14     return pHead;
    15 }

    执行结果                                   

  • 相关阅读:
    设置光盘为yum源
    oracle11G的安装历程
    数据备份系统治理方案
    设置 MySql 数据同步
    让MySQL与OpenOffice共舞
    My SQL数据库引擎疾速指导1
    MySQL就事器知名网站中的运用量
    MySQL 5.0 新特征教程 存储历程:第三讲
    解决MySQL数据库作古掉以及谢绝任事的办法
    Sun公司将引进新的API对MySQL休止功能调停
  • 原文地址:https://www.cnblogs.com/sunlinan/p/14292031.html
Copyright © 2011-2022 走看看