每日一练 两数相加问题(leetcode)

原题如下:

这道题目是一道链表题,我们对于这种链表类,很显然我们最后输出的是初始节点,所以我们要保留我们的初始头指针,那么我们的第一步一定是把头指针保留一份,然后再让头指针往后进行操作。那么我们进行什么操作呢,很简单,就是把l1和l2的对应内容加起来就行了,那么我们就面临这样几个问题。

第一,加的太“多”了,什么叫加多了呢,就是我们的和超过9了,这样的话显然我们要进行进位,我们进位后的那个数等于什么呢?显然是等于我们的和取余10,那么怎么表示我们后面一个要进位加1呢?我们可以再做一个进位指针,标记为0时表示没有进位,为1时表示已经进位(显然我们这里只能是进1)。那么我们之后的和其实等于l1+l2+进位指针的值,综合起来我们一开始把进位指针设为0,那么我们所有的和都可以为l1+l2+进位指针的值。

第二,加的太“少”了,什么意思呢?就是当l1和l2为空值的时候,我们是拿不到我们的val值的,所以这个时候我们人工设为0.

第三,l1和l2都为null,我们还要进位1,这个时候怎么办呢?显然我们只需要把我们的答案输出链表末尾加上一个1即可。

以下是代码(java)实现:

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode answerpre = new ListNode(0) ;ListNode answer = answerpre ;int jinzhi = 0 ;while(l1 != null || l2 != null){int x = l1 == null ? 0 : l1.val ;int y = l2 == null ? 0 : l2.val ;int ans = x + y + jinzhi ;jinzhi = ans/10 ;ans = ans % 10 ;answer.next = new ListNode(ans) ;answer = answer.next ;if(l1 != null){l1 = l1.next ;}if(l2 != null){l2 = l2.next ;}}if( jinzhi == 1 ){answer.next = new ListNode(1) ;answer = answer.next ;}return answerpre.next ;}
}

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

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

相关文章

C#热门技术应用:探索.NET Core与ASP.NET Core的前沿

C#热门技术应用:探索.NET Core与ASP.NET Core的前沿 随着信息技术的发展,C#作为微软开发的一款强大的面向对象编程语言,正在越来越多的领域发挥着关键作用。在.NET Core和ASP.NET Core的推动下,C#的发展和应用更是如日中天。今天&…

go中匿名函数的使用

匿名函数的使用 在Go语言中,不能像在Python那样在函数内部以常规方式定义一个具名函数。Go中的函数定义都必须在包级别进行。 不过可以通过匿名函数来实现类似的功能。匿名函数可以在函数内部定义并使用,这使得它们非常适合实现局部辅助函数的功能&…

基于Axios封装请求---防止接口重复请求解决方案

一、引言 前端接口防止重复请求的实现方案主要基于以下几个原因: 用户体验:重复发送请求可能导致页面长时间无响应或加载缓慢,从而影响用户的体验。特别是在网络不稳定或请求处理时间较长的情况下,这个问题尤为突出。 服务器压力…

android安卓餐厅点餐课设

一、引言 随着移动互联网的快速发展,手机应用已经成为我们日常生活中不可或缺的一部分。餐饮行业也积极借助移动应用的力量,提供更便捷、高效的点餐服务。本文将介绍一个基于安卓系统开发的餐厅点餐APP的课程设计项目,探讨其设计理念、功能特…

【容器源码篇】Map容器(HashTable,HashMap,TreeMap的特点)

文章目录 ⭐容器继承关系🌹Map容器🗒️HashTable源码解析构造方法put方法remove方法rehash扩容 🗒️HashMap源码解析构造函数get方法put方法详解 扩容方法详解 🗒️TreeMap源码解析 ⭐容器继承关系 🌹Map容器 键值对映…

如何在 Mac 上打开、编辑、复制、移动或删除存储在 Windows NTFS 格式 USB 驱动器上的文件 Tuxera NTFS for Mac使用教程

当您获得一台新 Mac 时,它只能读取 Windows NTFS 格式的 USB 驱动器。要将文件添加、保存或写入您的 Mac,您需要一个附加的 NTFS 驱动程序。Tuxera 他可以帮忙实现这一功能! Tuxera可以轻松转换驱动器:无论使用Windows PC还是Mac&…

OpenGL的MVP矩阵理解

OpenGL的MVP矩阵理解 右手坐标系 右手坐标系与左手坐标系都是三维笛卡尔坐标系,他们唯一的不同在于z轴的方向,如下图,左边是左手坐标系,右边是右手坐标系 OpenGL中一般用的是右手坐标系 1.模型坐标系(Local Space&…

42 ajax 下载文件未配置 responseType blob 导致的文件异常

前言 这是一个最近的关于文件下载碰到的一个问题 主要的情况是, 基于 xhr 发送请求, 获取下载的文件 然后 之后 xhr 这边拿到 字节序列之后, 封装 blob 来进行下载 然后 最开始我们这边没有配置 responseType 为 blob, arraybuffer, 然后 导致下载出来的 文件大小超过了…

Image-Adaptive YOLO for Object Detection in Adverse Weather Conditions(IA-YOLO)

1、总体概述 基于深度学习的目标检测在常规条件的数据集可以获得不错的结果,但是在环境、场景、天气、照度、雾霾等自然条件的综合干扰下,深度学习模型的适应程度变低,检测结果也随之下降,因此研究在复杂气象条件下的目标检测方法…

警务数据仓库的实现

目录 一、SQL Server 2008 R2(一)SQL Server 的服务功能(二)SQL Server Management Studio(三)Microsoft Visual Studio 二、创建集成服务项目三、配置“旅馆_ETL”数据流任务四、配置“人员_ETL”数据流任…

C++原创2D我的世界1.00.3 QPBSv01优化版

上次更新遗漏了一些细节,这会我加上了 #include"bits/stdc.h" #include"Windows.h" #define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) using namespace std; int a49,d49,w1,n0,m[100]{0},u[100]{0},t[100]{…

Vue 3中的`createApp`

Vue 3中的createApp 在Vue 3中,createApp被用来创建一个新的应用实例。它是Vue 3的入口点,用于启动应用。createApp函数接受一个对象参数,该对象包含多个属性,这些属性用于配置和扩展Vue应用。 基本用法 import {createApp } from vue; import App from ./App.vue;const…

k8s安装traefik作为ingress

一、先来介绍下Ingress Ingress 这个东西是 1.2 后才出现的,通过 Ingress 用户可以实现使用 nginx 等开源的反向代理负载均衡器实现对外暴露服务,以下详细说一下 Ingress,毕竟 traefik 用的就是 Ingress 使用 Ingress 时一般会有三个组件: …

【零基础C语言】预处理解析

预定义符号 c语言中设置一些预定的符号,我们可以直接使用 //列: __FILE__ //进⾏编译的源⽂件 __LINE__ //⽂件当前的⾏号 __DATE__ //⽂件被编译的⽇期 __TIME__ //⽂件被编译的时间 __STDC__ //如果编译器遵循ANSI C,其值为1,否…

基于SSM的高校普法系统(有报告)。Javaee项目。ssm项目。

演示视频: 基于SSM的高校普法系统(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring Spri…

inkscape中文版本 G代码生成器(支持中英文及数字)使用

inkscape G代码生成器(支持中英文及数字)使用 1 inkscape安装1. 界面介绍2. 基本操作3. 图形编辑4. 图层管理5. 文件操作6. 高级功能7. 学习资源 2 laserengraver插件安装3 inkscape 使用candle 验证G代码效果 1 inkscape安装 跟着提示默认按键即可。 软…

HTML网站的概念

目录 前言: 1.什么是网页: 2.什么是网站: 示例: 3.服务器: 总结: 前言: HTML也称Hyper Text Markup Language,意思是超文本标记语言,同时HTML也是前端的基础&…

Git版本管理使用手册 - 5 - Git的.ignore文件语法

Git的.ignore文件 1.使用 .ignore文件可以忽略指定文件的版本控制。 2.语法: (1)#开头表示注释 (2)!开头表示不忽略匹配文件 (3)* 表示除/外,任何字符串 (4)?表示除/外,任何一个字符 (5)/ 如果模式的结尾有分割符/&am…

Linux 环境安装Nginx—源码和Dokcer两种安装方式

一、源代码编译安装Nginx 1.下载最新nginx源码 以nginx-1.25.3.tar.gz为例: 可以使用命令(联网):curl -O http://nginx.org/download/nginx-1.25.3.tar.gz或在官网下载.tar.gz 2.解压缩 tar -zxvf nginx-1.25.3.tar.gz cd nginx-1.25.3/ 3.安装依赖…

HarmonyOS实战开发-实现自定义弹窗

介绍 本篇Codelab基于ArkTS的声明式开发范式实现了三种不同的弹窗,第一种直接使用公共组件,后两种使用CustomDialogController实现自定义弹窗,效果如图所示 相关概念 AlertDialog:警告弹窗,可设置文本内容和响应回调…