【LeetCode-中等题】2. 两数相加

news2024/9/25 3:19:13

文章目录

    • 题目
    • 方法一:借助一个进制位,以及更新尾结点
    • 方法一改进:相比较第一种,给head一个临时头节点(开始节点),最后返回的时候返回head.next,这样可以省去第一次的判断

题目

在这里插入图片描述

方法一:借助一个进制位,以及更新尾结点

在这里插入图片描述

 public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode head = null;//定义结果链表
        ListNode tail = null;//定义尾结点
        int cay = 0;//定义进位数
        int n1 = 0;
        int n2 = 0;
        while(l1 != null || l2 != null){
            //若节点为空,则补0
            if(l1 == null) n1 = 0;
            else n1 = l1.val;
            if(l2 == null) n2 = 0;
            else n2 = l2.val;

            int sum =  n1 + n2 + cay;
            if (head == null) // 第一次计算答案  记录头结点
                 head = tail = new ListNode(sum % 10);
            else {
                tail.next = new ListNode(sum % 10);
                tail = tail.next; //更新尾结点
            }
            cay = sum /10 ;
            if(l1 != null) l1 = l1.next;
            if(l2 != null) l2 = l2.next;

        }

        if (cay == 1) { //说明最后还有一个进位1没有记录下来  直接让尾结点去指向最后一位 1

            tail.next = new ListNode(1);
            tail.next.next = null;
        }
        return head;
    }

方法一改进:相比较第一种,给head一个临时头节点(开始节点),最后返回的时候返回head.next,这样可以省去第一次的判断

 			 ListNode begin = new ListNode(1);//给head一个起点
 			int sum =  n1 + n2 + cay;
            tail.next = new ListNode(sum % 10);//记录尾指针下一个指向
            tail = tail.next;  //更新尾指针一直指向结果链表尾部
            cay = sum /10 ;
public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode begin = new ListNode(1);//给head一个起点
        ListNode head = begin;//定义结果链表
        ListNode tail = head;//定义尾结点
        int cay = 0;//定义进位数
        int n1 = 0;
        int n2 = 0;
        while(l1 != null || l2 != null){
            //若节点为空,则补0
            if(l1 == null) n1 = 0;
            else n1 = l1.val;
            if(l2 == null) n2 = 0;
            else n2 = l2.val;

            int sum =  n1 + n2 + cay;
            tail.next = new ListNode(sum % 10);//记录尾指针下一个指向
            tail = tail.next;  //更新尾指针一直指向结果链表尾部
            cay = sum /10 ;
            if(l1 != null) l1 = l1.next;
            if(l2 != null) l2 = l2.next;

        }

        if (cay == 1) { //说明最后还有一个进位1没有记录下来  直接让尾结点去指向最后一位 1
            tail.next = new ListNode(1);
            tail.next.next = null;
        }
        return head.next; //因为head的定义借助了begin头结点  最后结果为head后面的节点链
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/935283.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java-继承和多态(上)

面向对象思想中提出了继承的概念,专门用来进行共性抽取,实现代码复用。 继承(inheritance)机制:继承主要解决的问题是:共性的抽取,实现代码复用。 继承的语法 在Java中如果要表示类之间的继承关系,需要借助…

2 hadoop的目录

1. 目录结构: 其中比较的重要的路径有: hdfs,mapred,yarn (1)bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本 (2)etc目录&#x…

docker之 Consul(注册与发现)

目录 一、什么是服务注册与发现? 二、什么是consul 三、consul 部署 3.1建立Consul服务 3.1.1查看集群状态 3.1.2通过 http api 获取集群信息 3.2registrator服务器 3.2.1安装 Gliderlabs/Registrator 3.2.2测试服务发现功能是否正常 3.2.3验证 http 和 ng…

Seaborn绘制热力图的子图

Seaborn绘制热力图的子图 提示:如何绘制三张子图 绘制的时候,会出现如下问题 (1)如何绘制1*3的子图 (2)三个显示条,如何只显示最后一个 提示:下面就展示详细步骤 Seaborn绘制热力…

虾皮shopee国际站区域根据ID取商品详情 API 返回值说明

虾皮shopee国际站区域根据ID取商品详情 API 数据代码如下: item_get-根据ID取商品详情 shopee.item_get 公共参数 名称类型必须描述技术交流18179014480keyString是调用key(必须以GET方式拼接在URL中)API接口接入secretString是调用密钥a…

数据结构(Java实现)-包装类和泛型

包装类 在Java中,由于基本类型不是继承自Object,为了在泛型代码中可以支持基本类型,Java给每个基本类型都对应了 一个包装类型。 基本数据类型和对应的包装类 装箱和拆箱 装箱操作,新建一个 Integer 类型对象,将 i 的…

css选择器,只有第一个不加边框,其余都加

我们在开发中,经常会遇到这样的场景: 要给除了第一个以外的其他元素添加样式,那么我们通过css选择器就可以做到这一点,往下看吧! 1. 示例代码 2. 效果展示

Transformer模块(Restormer)

由一个MDTA模块和一个GDFN模块组成一个Transformer Block 我们看一下代码实现: class TransformerBlock(nn.Module):def __init__(self, dim, num_heads, ffn_expansion_factor, bias, LayerNorm_type):super(TransformerBlock, self).__init__()self.norm1 Laye…

C++ - C++11

文章目录 1. std::initializer_list2. decltype3. 左值引用和右值引用4. 完美转发(模板中的&&万能引用)5. 类的新功能6. 可变参数模板7. lambda表达式8. 包装器 1. std::initializer_list 内置类型 int main() {/* 内置类型 */int x1 1;int x2 { 2 };int x3{ 3 };i…

经管博士科研必备【6】Gumbel分布

关于Gumbel分布的相关知识也可以参考: 1.3.6.6.16. Extreme Value Type I Distribution Chapter 4 The Multinomial Logit Model | A Self-Instructing Course in Mode Choice Modeling 1.什么是Gumbel分布 在推导MNL模型(Multinomial Logit)、NL(Nested Logit)模型前,我…

dvwa xss通关

反射型XSS通关 low难度 选择难度&#xff1a; 直接用下面JS代码尝试&#xff1a; <script>alert(/xss/)</script>通关成功&#xff1a; medium难度 直接下面代码尝试后失败 <script>alert(/xss/)</script>发现这段代码直接被输出&#xff1a; 尝试…

Python爬虫框架之Selenium库入门:用Python实现网页自动化测试详解

概要 是否还在为网页测试而烦恼&#xff1f;是否还在为重复的点击、等待而劳累&#xff1f;试试强大的Selenium&#xff01;让你的网页自动化测试变得轻松有趣&#xff01; 一、Selenium库到底是什么&#xff1f; Selenium 是一个强大的自动化测试工具&#xff0c;它可以让你直…

OLED透明屏水波纹效果:打造独特的显示体验

OLED透明屏水波纹效果是一种独特的显示技术&#xff0c;通过模拟水波纹的视觉效果&#xff0c;为用户带来更加生动逼真的观感。 根据市场调研报告显示&#xff0c;OLED透明屏水波纹效果已经在广告、游戏和商业领域得到广泛应用&#xff0c;为品牌提供了新的展示方式&#xff0…

Git想远程仓库与推送以及拉取远程仓库

理解分布式版本控制系统 1.中央服务器 我们⽬前所说的所有内容&#xff08;⼯作区&#xff0c;暂存区&#xff0c;版本库等等&#xff09;&#xff0c;都是在本地也就是在你的笔记本或者计算机上。⽽我们的 Git 其实是分布式版本控制系统&#xff01;什么意思呢? 那我们多人…

java八股文面试[多线程]——为什么要用线程池、线程池参数

速记7个&#xff1a; 核心、最大 存活2 队列 工厂 拒绝 线程池处理流程&#xff1a; 线程池底层工作原理&#xff1a; 线程复用原理&#xff1a; 知识来源&#xff1a; 【并发与线程】为什么使用线程池&#xff0c;参数解释_哔哩哔哩_bilibili 【并发与线程】线程池处理流程…

【⑮MySQL | 视图】概述 | 创建 | 查看 | 更新 | 修改 | 删除

前言 ✨欢迎来到小K的MySQL专栏&#xff0c;本节将为大家带来MySQL视图概述 | 创建 | 查看 | 更新 | 修改 | 删除的分享✨ 目录 前言1.视图概述2.创建视图3.查看视图4.更新视图数据5.修改视图6.删除视图总结 1.视图概述 1.1 为什么使用视图&#xff1f; 视图一方面可以帮我们使…

【Acwing91】最短Hamilton路径详细题解

题目描述 题目分析 首先我们来分析暴力做法&#xff0c;此时最大需要遍历&#xff08;n20&#xff09;20个顶点的排列方式&#xff0c;总共计算的次数为20!&#xff0c;数量级远远大于10^8&#xff0c;显然是不合理的。 此时&#xff0c;我们可以对上述dfs遍历的众多情况进行…

SpringBoot项目在启动后自动关闭

问题描述&#xff1a; 今天搭建了一个SpringBoot项目&#xff0c;但是在启动之后就自行关闭了&#xff0c;就像下面这样&#xff1a; 原因分析&#xff1a;在创建SpringBoot项目的时候&#xff0c;Web的依赖没有导入&#xff0c;默认以普通java项目运行导致的终止。 解决方案…

【Tkinter系列01/5】界面初步和布局

一、说明 一般来说&#xff0c;界面开发中&#xff0c;如果不是大型的软件&#xff0c;就不必用QT之类的实现&#xff0c;用Tkinter已经足够&#xff0c;然而即便是Tkinter规模不大&#xff0c;也需要一个系统专业的学习过程&#xff0c;本篇将是对Tkinter系列介绍的一篇博文。…

SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录(第五天)MyBatis的注解开发

SSM框架的学习与应用(Spring Spring MVC MyBatis)-Java EE企业级应用开发学习记录&#xff08;第五天&#xff09;MyBatis的注解开发 ​ 昨天我们深入学习了MyBatis多表之间的关联映射&#xff0c;了解掌握了一对一关联映射&#xff0c;一对多关联映射&#xff0c;嵌套查询方…