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)));
  
};
相关推荐
To_OC12 分钟前
踩了个 TS 的坑之后,我终于把 type 和 interface 掰明白了
前端·react.js·typescript
GreenTea31 分钟前
深度解读 Anthropic 多智能体报告:更强的模型 ≠ 更好的协调
前端·后端·算法
浮生望1 小时前
前端API工程化:用 Mock 数据与 Axios 配置实现独立于后端的并行开发
前端
万少1 小时前
给 DeepSeek Harness 装个"应用商店":一条命令,595 个插件随你逛
前端·javascript·后端
波波0071 小时前
C# 15 重磅新特性: 带标签 break 与 continue:重新定义嵌套循环控制流
服务器·前端·c#
fqq31 小时前
力扣刷题前置Java语法
算法·leetcode·职场和发展
Brown.alexis2 小时前
es6知识点1-自备使用
前端·ecmascript·es6
小爬的老粉丝3 小时前
JavaScript 纯前端预览 WPS:先识别容器,再路由解析器
前端·javascript·wps
计算机魔术师4 小时前
新兴多智能体系统的模式与问题
前端
半夏微凉半夏殇4 小时前
x11与weston对比,优先选哪个
leetcode·均值算法·eclipse