JavaScript——合并两个有序链表

news/2024/7/19 14:35:37 标签: 链表, js, 剑指offer, 递归, 循环

题目描述

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

例如:

输入:链表一:1->3->5->7    链表二:2->4->6->8

输出:链表三:1->2->3->4->5->6->7->8

/*function ListNode(x){
    this.val = x;
    this.next = null;
}*/
function Merge(pHead1, pHead2)
{    
    //方法一:递归调用
    /*
    var res;
    if(pHead1==null) return pHead2;//直至链表pHead1为空返回剩余的链表pHead2,进行拼接
    if(pHead2==null) return pHead1;//直至链表pHead2为空返回剩余的链表pHead1,进行拼接
    if(pHead1.val>pHead2.val){
        res=pHead2;
        res.next=Merge(pHead1,pHead2.next);//递归调用Merge方法
    }else{
        res=pHead1;
        res.next=Merge(pHead1.next,pHead2);//递归调用Merge方法
    }
    return res;
    */
    
    //方法二:while循环
    
    var pHead3 = new ListNode(-1);//实例化一个链表,里面的值是-1;因程序需要创建的节点
    var l3 = pHead3;//l3链表节点用于移动,拼接链表元素

    while(pHead1 !== null && pHead2 !== null) {
        if(pHead1.val <= pHead2.val) {
            l3.next = pHead1;
            pHead1 = pHead1.next;
        } else {
            l3.next = pHead2;
            pHead2 = pHead2.next;
        }
        l3 = l3.next;
    }
    l3.next = (pHead1===null) ?pHead2:pHead1;//循环完某一链表后,将另一链表剩下的部分直接加入到l3
    return pHead3.next;//输出节点-1之后的链表,即我们需要的合成后的单调不减链表
    
}

前端面试的时候,面试官最喜欢问的链表题目之一,一定要好好理解。


http://www.niftyadmin.cn/n/1426092.html

相关文章

Jsp 服务器resin的url重定向的摸索

最简单的是基于各种WEB服务器中的URL重写转向&#xff08;Rewrite&#xff09;模块的URL转换&#xff1a;这样几乎可以不修改程序的实现将 news.jsp?id234 这样的链接映射成 news/234.html&#xff0c;从外面看上去和静态链接一样。resin服务器上可以通过webinfo的web.xml来设…

JavaScript——反转链表

题目描述 输入一个链表&#xff0c;反转链表后&#xff0c;输出新链表的表头。 例如&#xff1a; 输入&#xff1a;a->b->c->d->e 输出&#xff1a;a<-b<-c<-d<-e 反转链表示意图如下&#xff0c;链表的最后一个元素next指向null。 /*function Li…

判断页面是否加载完

方法一&#xff1a; <iframe name"t" id"t" src"http://www.163.com" οnlοad"javascript:window.alert(ok!);" ></iframe> 方法二&#xff1a; <iframe name"t" id"t" src&qu…

JavaScript——重建二叉树

题目描述 输入某二叉树的前序遍历和中序遍历的结果&#xff0c;请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6}&#xff0c;则重建二叉树并返回。 首先&#xff0c;在没有…

Ajax入门学习

Ajax实现异步数据检测 异步javascriptxml (XHTML,css,DOM,xml,xslt,XMLHttpRequest进行异步数据读取&#xff0c;用js绑定和处理所有数据) 工作原理相当于用户和服务器之间加了一个中间层&#xff0c;使用户操作与服务器响应异步化。 例&#xff1a; 1 用js来创建XMLHttpReque…

js——冒泡排序(bubbleSort)代码实现

排序算法入门算法&#xff1a;冒泡排序。大学时候接触C语言就应该知道这一算法。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>冒泡排序</title><!-- 1、冒泡排序思想&#xff1a;每一次…

js函数大全

js函数大全(转) 1.document.write(""); 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:document->html->(head,body)4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document)5.得到表单中元素的名称和值:document.getE…

js——快速排序(quickSort)代码实现

快速排序作为前端排序算法面试的最常考算法之一&#xff0c;是必须要掌握的。现场面试的时候&#xff0c;会要求直接在A4纸上书写出来&#xff0c;不能有犹豫&#xff0c;所以还在等什么呢&#xff1f; <!DOCTYPE html> <html lang"en"> <head>&l…