首页 > 编程语言 >LeetCode热题100-两数相加【JavaScript讲解】

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

时间:2025-01-13 13:32:13浏览次数:3  
标签:ListNode floor JavaScript next l2 两数 l1 热题 Math

题目:

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

题解:

根据题目(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(对于整数,直接返回)

通过

在这里插入图片描述

标签:ListNode,floor,JavaScript,next,l2,两数,l1,热题,Math
From: https://blog.csdn.net/qq_53002037/article/details/145112061

相关文章

  • 代码随想录算法训练营第6天 | 哈希表理论基础,242.有效的字母异位词,349. 两个数组的交
    一、刷题部分1.1哈希表理论基础原文链接:代码随想录题目链接:......
  • 如何使用CSS3或JavaScript实现页面动画效果?
    要使用CSS3或JavaScript实现页面动画效果,可以根据具体需求选择合适的方法。以下是基于我搜索到的资料,详细说明如何使用CSS3和JavaScript实现页面动画效果:使用CSS3实现页面动画效果1.CSS3过渡和动画CSS3提供了强大的过渡和动画功能,可以轻松创建元素状态改变时的平滑效果。......
  • javaScript介绍
    JavaScript概述JavaScript是世界上最流行的脚本语言Java和JavaScript没有真正上的联系历史https://blog.51cto.com/u_39037/10505185ECMAScript它可以理解为是javaScript的一个标准快速入门引入JavaScript1.内部标签<script>//....</script>2.外部引用a......
  • C++、Python、Java、JavaScript的fill函数使用
    C++在C++中,std::fill函数用于将指定的值赋给容器或数组中给定范围内的所有元素。它定义在<algorithm>头文件中,函数原型如下:template<classForwardIterator,classT>voidfill(ForwardIteratorfirst,ForwardIteratorlast,constT&value);ForwardIterator:前向迭代......
  • LeetCode热题100中 35. 46. 70. 73. 118.
    35.搜索插入位置题目描述:实现思路:        这里主要就是二分查找,二分查找要注意对边界值的处理,l是数组的第一位,r是数组的最后一位,l<=r我们就返回l,因为我们的判断是nums[mid]<target 取的是mid的左区间已经不包含mid了,所以是 l=mid+1。代码:var......
  • workerpool,JavaScript强大的线程池库!
    ......
  • 【练习】力扣 热题100 最大子数组和
    题目给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。示例1:输入:nums=[-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1]的和最大,为6。示例2:输入:nums=[1]输出:......
  • 说说你对javascript的作用域的理解
    在前端开发中,JavaScript的作用域是一个非常重要的概念。作用域决定了变量和函数的可访问性,即它们可以在哪里被访问和使用。理解作用域对于编写高质量、可维护的JavaScript代码至关重要。以下是关于JavaScript作用域的一些关键点:全局作用域和局部作用域:全局作用域:在代码......
  • 怎么用javascript实现markdown文件预览?
    在前端开发中,实现Markdown文件预览通常涉及两个步骤:首先,需要读取Markdown文件的内容;然后,使用Markdown解析器将内容转换为HTML格式,以便在网页上展示。以下是一个基本的实现流程:1.读取Markdown文件内容由于浏览器安全限制,直接读取用户本地文件系统中的Markdown文件内容可能并不简......
  • 使用javascript写个方法进行屏目切换检测
    在前端开发中,要检测屏幕切换(例如,用户从桌面屏幕切换到移动屏幕,或者从横屏切换到竖屏等),你可以使用window对象的resize事件。这个事件会在窗口大小发生变化时触发,因此可以用来检测屏幕切换。以下是一个简单的JavaScript方法,用于检测屏幕大小的变化:functiondetectScreenChange(){......