Leetcode 2.两数相加 JavaScript (Day 11)

js一刷自解暴力

javascript 复制代码
var addTwoNumbers = function(l1, l2) {
    let p1=l1,p2=l2,m=0;
    let  bummy=new ListNode();
    let cur=bummy
    while(p1&&p2){
        let node=new ListNode();
        let value=p1.val+p2.val+m;
        m=0;
        if(value>=10){
            m = Math.floor(value / 10);
            value=value%10;
        }
        node.val=value;
        cur.next=node;
        cur=node;
        p1=p1.next;
        p2=p2.next;
    }
    while(p1){
        let node=new ListNode();
        let value=p1.val+m;
        m=0;
        if(value<10){
            node.val=value;
            node.next=p1.next;
            cur.next=node;
            break;
        } 
        else{
            m = Math.floor(value / 10);
            value=value%10;
            node.val=value;
            cur.next=node;
            cur=node;
            p1=p1.next;
        }  
    }
    while(p2){
        let node=new ListNode();
        let value=p2.val+m;
        m=0;
        if(value<10){
            node.val=value;
            node.next=p2.next;
            cur.next=node;
            break;
        } 
        else{
            m = Math.floor(value / 10);
            value=value%10;
            node.val=value;
            cur.next=node;
            cur=node;
            p2=p2.next;
        }  
    }
    if(m){
        let node=new ListNode();
        node.val=m;
        cur.next=node;
    }
    return bummy.next;
    
};

js一刷优化

javascript 复制代码
var addTwoNumbers = function(l1, l2) {
    let dummy = new ListNode(0);
    let cur = dummy;
    let m = 0;
    while(l1||l2||m){
        if(l1){
            m+=l1.val;
            l1=l1.next;
        }
        if(l2){
            m+=l2.val;
            l2=l2.next;
        }
        cur.next=new ListNode(m%10);
        m=Math.floor(m/10);
        cur=cur.next;
    }
    return dummy.next;
  
};

js一刷 递归

javascript 复制代码
var addTwoNumbers = function(l1, l2,m=0) {
        if(l1===null&&l2===null&&m===0){
            return null;
        }
        let sum=m;
        if(l1){
            sum+=l1.val;
            l1=l1.next;
        }
        if(l2){
            sum+=l2.val;
            l2=l2.next;
        }
       
    
    return new ListNode(sum%10,addTwoNumbers(l1,l2,Math.floor(sum/10)));
  
};
相关推荐
WooaiJava1 小时前
AI 智能助手项目面试技术要点总结(前端部分)
javascript·大模型·html5
爱喝白开水a1 小时前
前端AI自动化测试:brower-use调研让大模型帮你做网页交互与测试
前端·人工智能·大模型·prompt·交互·agent·rag
Never_Satisfied1 小时前
在JavaScript / HTML中,关于querySelectorAll方法
开发语言·javascript·html
董世昌411 小时前
深度解析ES6 Set与Map:相同点、核心差异及实战选型
前端·javascript·es6
WeiXiao_Hyy2 小时前
成为 Top 1% 的工程师
java·开发语言·javascript·经验分享·后端
吃杠碰小鸡2 小时前
高中数学-数列-导数证明
前端·数学·算法
kingwebo'sZone2 小时前
C#使用Aspose.Words把 word转成图片
前端·c#·word
xjt_09013 小时前
基于 Vue 3 构建企业级 Web Components 组件库
前端·javascript·vue.js
我是伪码农3 小时前
Vue 2.3
前端·javascript·vue.js
夜郎king3 小时前
HTML5 SVG 实现日出日落动画与实时天气可视化
前端·html5·svg 日出日落