zoukankan      html  css  js  c++  java
  • LeetCode2.两数相加 JavaScript

    给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。

    你可以假设除了数字 0 之外,这两个数字都不会以零开头。

    示例:

    输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
    输出:7 -> 0 -> 8
    原因:342 + 465 = 807
    /**
     * Definition for singly-linked list.
     * function ListNode(val) {
     *     this.val = val;
     *     this.next = null;
     * }
     */
    /**
     * @param {ListNode} l1
     * @param {ListNode} l2
     * @return {ListNode}
     */
    var addTwoNumbers = function(l1, l2) {
         //定义一个新链表res,一个temp的链表cur,用来当作res的指针,一个进位标志carry
        let res = new ListNode(-1),
            cur = res,
            carry = 0;
        while(l1 !== null || l2 !== null){
            //取到两个链表当前的数值
            let num1 = l1 == null ? 0 : l1.val;
            let num2 = l2 == null ? 0 : l2.val;
            //求和
            let sum = num1 + num2 + carry;
            //对进位标志的验证
            carry = sum >= 10 ? 1 : 0;
            cur.next = new ListNode(sum % 10);
            cur = cur.next;
            l1 = l1 ? l1.next : l1;
            l2 = l2 ? l2.next : l2;
        }
        if (carry === 1) {
            cur.next = new ListNode(1);
        }
        return res.next; 
    
    };
     
  • 相关阅读:
    王爽《汇编语言》第三版 第一章 基础知识
    JAVA拷贝视频文件无法播放的解决方法
    算法导论 第2章 算法基础
    今天来个爪哇去边框的小代码
    设计模式_Adapt
    qs面试记录
    zl面试记录
    pa_ns2面试记录
    pa_ns1面试总结
    sfjc面试记录
  • 原文地址:https://www.cnblogs.com/lhh520/p/9919528.html
Copyright © 2011-2022 走看看