2两数相加

LeetCode 2. 两数相加(C++) 题目: 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 思路: 创建一个临时的... 阅读详情

LeetCode:

https://leetcode-cn.com/problems/add-two-numbers/

两数相加

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

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

示例:

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807
package com.example.myapp;

import com.example.myapp.node.ListNode;

import org.junit.Assert;
import org.junit.Test;

/**
 * Created by mike.
 * Created on 2020/3/20.
 */
public class LeetCode_3_20_TwoNumberPlus {
    @Test
    public void Test() {
        ListNode _342_ = new ListNode(2);
        _342_.next = new ListNode(4);
        _342_.next.next = new ListNode(3);

        ListNode _465_ = new ListNode(5);
        _465_.next = new ListNode(6);
        _465_.next.next = new ListNode(4);

        ListNode result = twoNumPlus(_342_, _465_);
        Assert.assertEquals(7, result.val);
        Assert.assertEquals(0, result.next.val);
        Assert.assertEquals(8, result.next.next.val);

        ListNode listNode = twoNumPlus(new ListNode(5), new ListNode(5));
        Assert.assertEquals(0, listNode.val);
        Assert.assertEquals(1, listNode.next.val);

        ListNode _98_ = new ListNode(9);
        _98_.next = new ListNode(8);

        ListNode _1_ = new ListNode(1);
        ListNode listNode1 = twoNumPlus(_98_, _1_);
        Assert.assertEquals(0, listNode1.val);
        Assert.assertEquals(9, listNode1.next.val);

    }

    private ListNode twoNumPlus(ListNode l1, ListNode l2) {
        ListNode temp = null;
        ListNode result = null;

        boolean flag = false;

        while (l1 != null && l2 != null){
            int cur = l1.val + l2.val + (flag ? 1 : 0);
            flag = cur >= 10;
            ListNode node = new ListNode(flag ? cur % 10 : cur);
            if(temp == null){
                temp = node;
                result = temp;
            }else {
                temp.next = node;
                temp = temp.next;
            }
            l1 = l1.next;
            l2 = l2.next;
        }
        while (l1 != null){
            int cur = l1.val + (flag ? 1 : 0);
            flag = cur >= 10;
            ListNode node = new ListNode(flag ? cur % 10 : cur);
            if(temp == null){
                temp = node;
                result = temp;
            }else {
                temp.next = node;
                temp = temp.next;
            }
            l1 = l1.next;
        }

        while (l2 != null){
            int cur = l2.val + (flag ? 1 : 0);
            flag = cur >= 10;
            ListNode node = new ListNode(flag ? cur % 10 : cur);
            if(temp == null){
                temp = node;
                result = temp;
            }else {
                temp.next = node;
                temp = temp.next;
            }
            l2 = l2.next;
        }

        if(flag){
            temp.next = new ListNode(1);
        }

        return result;
    }

}

 

package com.example.myapp.node;

/**
 * Created by mike.
 * Created on 2020/3/20.
 */
public class ListNode {
    public int val;
    public ListNode next;

    public ListNode(int x) {
        this.val = x;
    }
}

 

力扣算法题2. 两数相加 2. 两数相加 第一次尝试后做不出来,看了一遍官方的解题思路后,开始修改自己的代码,最终通过,仅作学习记录,最后看了官方的代码,恍然大悟,自己写的确实不够标准和泛化,存在太多if语句,冗余严重,欢迎各位大佬指点! 下面附上自己写的代码和伪代码作为学习记录—— 解题思路 1.1 实例化两个指针l3,l4,l3:表头,l4:工作指针 1.2 初始化进位值w=0,i=0(i=1时表征第一次对l1和l2的表头元素做相加); 1.3 判断l1与l2指针的null情况 1.3.0 i++ 1.3.1 l1!=null 阅读详情

相关推荐

Leetcode 《2. 两数相加》 之JS实现

准备面试,临时抱佛脚地开始刷leetcode,顺便练习一下javascript,决定把过程放博客记录一下,主要是总结比较个人的问题,大家可以不看。 题目《2. 两数相加》 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了...

qq_35175413的博客 1647

jsp实现两数相加_LeetCode | 2.两数相加

点击上方蓝字关注我们LeetCode 相关的文章:1、LeetCode | 1.两数之和2、LeetCode | 703.数据流中的第K大元素3、LeetCode | 232.用栈实现队列4、LeetCode | 225.用队列实现栈5、LeetCode | 20.有效的括号6、LeetCode | 141.环形链表7、LeetCode | 24.两两交换链表中的节点8、LeetCode...

weixin_36012968的博客 493

LeetCode 2 - 两数相加

是一道经典链表操作问题,经常作为面试中基础题的变体被考察。掌握多种解法及其变体,并熟悉其核心思路和模板代码,可以快速备战相关链表或大数计算问题。给定两个非空链表,它们代表两个非负整数,每个节点保存一个数字,数字按(个位在链表头部),求两个数的和并返回一个新的链表,表示其逆序和。l1l2carrysum % 10carrymn如果链表存储的是整数的正常顺序(高位在前),如何求两数和?

互联网架构师笔记 1162

力扣2. 两数相加

力扣2. 两数相加 https://leetcode-cn.com/problems/add-two-numbers/ 给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0开头。 示例:...

小麦China的博客 199

PDN设计

作者:AirCity 2020.2.6 Aircity007@sina.com 本文所有权归作者Aircity所有 PDN设计的目的是降低电源纹波水平,减小电压跌落。我们通常要求LDO的文波水平是30mV,DCDC是50mV,超过这个就需要PDN设计。 PDN设计的方法是用不同的容值,合适的总电容量,降低电源平面与地平面之间的交流阻抗,确定容值总量和电容大小的过程,就是PDN设计过程。 为什么需...

AirCity123的博客 4148

HBuilderx 坑 之前没问题 改了几行代码 小程序上传报分包大小超过限制

Error: 分包大小超过限制,main package source size 4199KB exceed max limit 2MB [20221213 10:08:06][wx432abdb518bdc1eb]下面的我提示是都没超过2M,却提示我超过限制,代码改了不到20行吧,之前是正常上传的.....,比如这类,要压缩的,前提是没压缩过的,但是我肯定提交的时候是压缩的,没勾选此项的要注意,如果本文解决了你的困扰 来波666不为过吧!

爱就码上行动,奔赴热爱,追光而行。愿你带着从容与热爱,拥抱每一天的惊喜与美好 5221

Java实现 LeetCode 2 两数相加

两数相加 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0...

南 墙 1万+

Linux内核同步原语之队列自旋锁(Queued Spin Lock)深度解析

本文深度解析了Linux内核中的队列自旋锁(Queued Spin Lock)机制。通过对比传统自旋锁的瓶颈,详细阐述了队列自旋锁如何利用紧凑的4字节结构、每CPU节点数组和pending位优化,有效解决多核(SMP)系统中的缓存行乒乓和惊群效应,实现公平、高效的锁等待队列,从而显著提升内核在高并发场景下的可扩展性与性能。

weixin_29205061的博客 305

LeetCode2 两数相加 Add Two Numbers

LeetCode2 两数相加 Add Two Numbers 题目描述 给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。 如果我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字0之外,这两个数都不会以0开头。 示例 输入:(2 -> 4 -> 3) + (5 -> 6 -&gt...

沙码龙 225

卸载Office 16 Click-to-Run Extensibility Component详细步骤

卸载Office 16 Click-to-Run Extensibility Component详细步骤 第一步:按住键盘上的“Win+R”,打开运行窗口 在运行窗口输入“Installer”回车,打开Installer文件夹 第二步:在Installer文件夹红框最右侧,即“大小”后面,右击选择“其他”,找到“主题”,勾选,点击“确定”,添加主题列成功 第三步:在“主题”列找到“Office 16 Click-to-Run Extensibility Component

M_try的博客 3万+

深入解析MSPM0系列Keil开发中‘ti_msp_dl_config.h‘缺失问题的根源与修复

本文深入解析TI MSPM0系列Keil开发中'ti_msp_dl_config.h'文件缺失问题的根源与修复方法。该错误常见于编译时提示file not found,主要因SysConfig工具未正确生成或工程路径配置错误导致。文章提供了从环境检查、手动生成文件到工程配置调整的系统化解决方案,帮助开发者快速解决这一常见KEIL开发难题。

gold的博客 970

Leetcode No. 2 两数相加

Leetcode No. 2 两数相加ProblemSolvingCode(c++) Problem 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -...

weixin_42975610的博客 219

【Matlab深度学习】GPU加速实战:从环境配置到性能优化

本文详细介绍了如何在Matlab中为深度学习任务配置GPU加速环境并进行性能优化。文章从GPU加速的必要性讲起,手把手指导安装NVIDIA驱动、CUDA和cuDNN核心三件套,并验证环境。重点讲解了如何利用gpuArray将数据和模型迁移至GPU,以及通过内存优化、计算优化和多GPU并行等策略充分释放GPU算力,大幅缩短深度学习模型的训练时间。

weixin_29061465的博客 492

leetcode 2. 两数相加( Java解法 )

题目 : 给定两个非空链表来表示两个非负整数. 位数按照逆序方式存储, 他们的每个结点只存储单个数字, 将两数相加返回一个新的链表. 除了数字 0 之外, 这两个数字都不会以 0 开头 实例 : 输入 : ( 2 -> 4 -> 3 ) + ( 5 -> 6 -> 4) 输出 : 7 -> 0 -> 8 原因 : 342 + 465 = 807 ...

weixin_43235210的博客 1301

R语言生存分析之限制性立方样条分析:样条回归、和多项式回归有什么不同?是否存在非线性关系、限制性立方样条cox回归模型

R语言生存分析之限制性立方样条分析:样条回归、和多项式回归有什么不同?是否存在非线性关系、限制性立方样条cox回归模型

statistics+insight+vista+power 635

51单片机+L298驱动步进电机+L297测速+LCD1602显示+按键调试+Proteus仿真

51单片机+L298驱动步进电机+L297测速+LCD1602显示+按键调试+Proteus仿真 *Proteus仿真 L298N是双H桥式驱动器。 L297是步进电机控制集成芯片(包括环形分配器),可产生四相驱动信号,应用于微处理机控制两相双极性和四相单极性步进电机。电动机可由半阶梯、正常和斩波驱动模式驱动,同时设于晶片内的PWM斩波线路容许以开关形式控制线路的电流。此器件只需要时钟、方向和模式输入信号。相位是由内部产生的,因此可减轻微处理机和程序设计的负担。 实例代码 /************

perseverance51博客 4585

力扣(LeetCode):#2-两数相加

文章目录力扣(LeetCode):#2-两数相加题目描述:题解:方法:初等数学 力扣(LeetCode):#2-两数相加 题目描述: 题解: 方法:初等数学 Java /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution {

忘尘丶莫负的博客 286

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

LeetCode 2. 两数相加

LeetCode 2. 两数相加 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出...

ShilohXiang的博客 220

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

leetcode,2,两数相加

2,两数相加 2.1思路 ①标签:链表 ②将两个链表看成是相同长度的进行遍历,如果一个链表较短则在前面补0,比如987+23=987+023=1010 ③每一位计算的同时需要考虑上一位的进位问题,而当前位计算结束后同样需要更新进位值 ④如果两个链表全部遍历完毕后,进位值为1,则在新链表最前方添加节点1 ⑤小技巧:对于链表问题,返回结果为头结点时,通常需要先初始化一个预先指针 pre,该指针的下一个节点指向真正的头结点head。使用预先指针的目的在于链表初始化时无可用节点值,而且链表构造过程需要指针移动,进

Shaunan的博客 360

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

LeedCode 2.两数相加

本文讲解了力扣第二题两数相加的链表解法。

2403_88488897的博客 745

力扣LeetCode2.两数相加及Python源码实现

本题为LeetCode题库中第2两数相加,难度中等,题目请参考这里。 比较绕的一道题,谈论区的python答案不多而且思路没有讲清楚,这里记录一下。 给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数...

Alex__Mahone的专栏 795

LeetCode 第2题 两数相加

LeetCode 第2题

sakuraSD的博客 3108

leetcode_2_两数相加

总结易错 while( || ) 里面要增加null判断,防止l1 / l2 为null,l1 / l2 .next报错; 相加取尾数,加上进位,%取余, / 取进位; 为null, 则0上; 技巧:需要返回一个新链表的,哑结点pre = new ListNode(-1); List curr = prev; curr.next不断去添加新节点 2. 两数相加 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如

baihehaitangyijiu的博客 246

2_两数相加

/(我是详细的分成四种情况 l1、l2同时为空;//考虑到进位的情况。//然后 在 || 的情况下,拿到头结点的初始值(经过是否为空,空的初始值 为 0,否则就是头结点的值)//拿到头结点的初始值(经过是否为空,空的初始值 为 0,否则就是头结点的值)//考虑到进位的情况。// 题目例子:输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]//输出:[8,9,9,9,0,0,0,1], 可以看到有进位这种东西。// }else {//进位的话,需要进行传递。

伟庭师兄的博客 44

LeetCode 2. 两数相加(C语言)

2. 两数相加 Description 给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储 一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 Analyze

狂吃不胖温同学的博客 1544

2. 两数相加

2. 两数相加 https://leetcode-cn.com/problems/add-two-numbers/ 难度中等4721收藏分享切换为英文关注反馈 给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0开头。 示例: 输入:(2 -> 4 -> 3) + (5 -&gt...

肥不溜秋大梅子 194
上一篇: 在EditText中限制输入内容的长度
下一篇: C语言 编译工具CLion安装 以及注意点
fyldragonfyl
博客等级 码龄12年 9粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值