自学内容网 自学内容网

LeetCode热题100-两数相加【JavaScript讲解】

题目:

在这里插入图片描述
在这里插入图片描述

题解:

根据题目(2->4->3)+(5->6->4) = (7->0->8),根据加法的计算过程我们知道首先从低位开始算起,也就是说应该先计算2+5=7;4+6=10,向前进一位,此处取余数0;3+4+进一位的1 = 8;所以答案是 7->0->8。最关键的是最后的进位一定要记得,如果最后相加的和需要进位!!!

解题代码:

/**
 * Definition for singly-linked list.
 * function ListNode(val, next) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.next = (next===undefined ? null : next)
 * }
 */
/**
 * @param {ListNode} l1
 * @param {ListNode} l2
 * @return {ListNode}
 */
var addTwoNumbers = function(l1, l2) {
    let prevhead = new ListNode(0);
    let current = prevhead;
    let carry = 0;
    while(l1 !== null || l2 !== null){
        let x = l1 !== null ? l1.val : 0;
        let y = l2 !== null ? l2.val : 0;
        let add = x + y + carry;
        carry = Math.floor(add / 10);
        current.next = new ListNode(add % 10);
        current = current.next;

        if(l1 !== null) l1 = l1.next;
        if(l2 !== null) l2 = l2.next;
    }
    if(carry > 0){
        current.next = new ListNode(carry);
    }
    return prevhead.next;
   
};

散落知识点:

new ListNode是干什么的?

用来生成链表的节点,节点间的连接通过next属性指向下一个节点

Math.floor()?

Math.floor() 函数是 JavaScript 中的一个内置数学函数,用于向下取整,即返回小于或等于给定数字的最大整数。换句话说,它会将数字的小数部分截去,只保留整数部分,并且如果数字本身是整数,则直接返回该整数。如果数字是负数,Math.floor() 会向更小的负数方向取整。

console.log(Math.floor(4.7));    // 输出: 4
console.log(Math.floor(4.3));    // 输出: 4
console.log(Math.floor(-4.7));   // 输出: -5
console.log(Math.floor(-4.3));   // 输出: -5
console.log(Math.floor(4));      // 输出: 4(对于整数,直接返回)

通过

在这里插入图片描述


原文地址:https://blog.csdn.net/qq_53002037/article/details/145112061

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!