链表中的数字相加

        不能简单认为将两条链表转变为整数后进行运算,然后将结果转变为链表。因为如果链表很长,这可能会导致整数溢出。

        在正常的两个整数加法运算时,我们是从低位开始,然后依次相加更高位的数字,所以不难想到我们需要将链表反转,方便我们从原链表的尾节点开始遍历到头节点。另外还要考虑运算时产生的进位。

    public ListNode addTwoNumbers(ListNode head1, ListNode head2) {// 反转输入链表,使得数字的相加从低位到高位进行head1 = reverseList(head1);head2 = reverseList(head2);// 调用 addReversed 方法进行相加操作ListNode reversedHead = addReversed(head1, head2);// 最后再次反转得到的链表,得到最终相加的结果return reverseList(reversedHead);}// 反转链表private ListNode reverseList(ListNode head) {ListNode prev = null;ListNode cur = head;while (cur != null) {ListNode next = cur.next;cur.next = prev;prev = cur;cur = next;}return prev;}// 将两个反转后的链表相加private ListNode addReversed(ListNode head1, ListNode head2) {ListNode dummy = new ListNode(0);ListNode sumNode = dummy;int carry = 0;// 循环遍历两个链表的每一位while (head1 != null || head2 != null) {// 获取当前位的值,若为空则取0int sum = (head1 == null ? 0 : head1.val)+ (head2 == null ? 0 : head2.val) + carry;// 计算是否有进位carry = sum >= 10 ? 1 : 0;// 若有进位,更新当前位的值sum = sum >= 10 ? sum - 10 : sum;// 创建新节点存储当前位的和,连接到相加后的链表ListNode newNode = new ListNode(sum);sumNode.next = newNode;sumNode = sumNode.next;// 移动到下一位head1 = head1 == null ? null : head1.next;head2 = head2 == null ? null : head2.next;}// 如果循环结束后仍有进位,增加一个新节点存储进位if (carry > 0) {sumNode.next = new ListNode(carry);}// 返回相加后的链表头节点return dummy.next;}

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

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

相关文章

Git提交忽略指定文件

1.创建.gitignore文件存放到和.git同级的根目录下 #提交git时要忽略的文件或者文件夹,根据自己的需求来写 .idea target*.log *.iml *.jar *.war *.nar *.ear *.zip *.rar *.tar.gz2.提交.gitignore文件文件到远程仓库 分两种情况 .idea、target等无关文件已经提交到…

(每日持续更新)jdk api之NotSerializableException基础、应用、实战

博主18年的互联网软件开发经验,从一名程序员小白逐步成为了一名架构师,我想通过平台将经验分享给大家,因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验,晚上进行用心精简、整理、总结、定稿&…

【动态规划】【记忆化搜索】【回文】1312让字符串成为回文串的最少插入次数

作者推荐 【动态规划】【字符串】【表达式】2019. 解出数学表达式的学生分数 本文涉及知识点 动态规划汇总 记忆化搜索 回文 字符串 LeetCode1312. 让字符串成为回文串的最少插入次数 给你一个字符串 s ,每一次操作你都可以在字符串的任意位置插入任意字符。 请…

基于Java SSM框架实现校园快领服务系统项目【项目源码+论文说明】

基于java的SSM框架实现校园快领服务系统演示 摘要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于校园快领服务系统当然也不能排除在外,随着网络技术的不断成熟,带动了…

Python爬虫的基本原理

我们可以把互联网比作一张大网,而爬虫(即网络爬虫)便是在网上爬行的蜘蛛。把网的节点比作一个个网页,爬虫爬到这就相当于访问了该页面,获取了其信息。可以把节点间的连线比作网页与网页之间的链接关系,这样…

双非本科准备秋招(14.3)—— java线程

创建和运行线程 1、使用Thread Slf4j(topic "c.Test1")public class Test1 {public static void main(String[] args) {Thread t new Thread("t1") {Overridepublic void run() {log.debug("running");}};t.start();​log.debug("runnin…

react实现组件通信的案例

当使用React构建应用程序时,组件通信是一个重要的话题。以下是一个示例,演示了如何使用React实现组件间的通信: 常规方法: // ParentComponent.js import React, { useState } from react; import ChildComponent from ./ChildC…

Windows 共享文件 netlogon和sysvol的作用

在Windows域环境中&#xff0c;Netlogon和SYSVOL是两个非常重要的共享文件夹&#xff0c;它们由域控制器自动创建并管理&#xff0c;对于Active Directory&#xff08;AD&#xff09;域的正常运行至关重要&#xff1a; NETLOGON共享&#xff1a; 位置&#xff1a;\\<domain_…

牛客——扫雷MINE(dp,dfs,枚举+递推)

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 相信大家都玩过扫雷的游戏。那是在一个n*m的矩阵里面有一些雷&#xff0c;要你根据一些信息找出雷来。 万圣节到了 &#xff0c;“余”人国流行起了一种简单的扫雷游戏&#xff0c;…

【BIAI】Lecture 9-Motor system 1

Motor System 专业词汇 skeletal muscle 骨骼肌 smooth muscle 平滑肌 cardiac muscle 心肌 flexor reflex 屈曲反射 central pattern generators 中央模式生成器 bio-inspired bipedal robots 仿生双足机器人 myotatic stretch reflex 肌肉自伸展反射 Cortex optic nerve 视皮…

web wifi配网和模式切换-esp8266和esp32

web wifi配网和模式切换-esp8266和esp32 支持模式:1:tcp client() 2:tcp server 3:http server(POST/GET) 4:http client 5:udp,6:factory,7:mqtt 配网进入方式&#xff1a; 开机&#xff0c;指示灯亮起后(需要灯闪烁3下后)&#xff0c;需在3s内&#xff08;超过3s则会正常启动…

NUXTJS安装始终报错无法正常运行问题解决

近日在了解NuxtJS&#xff0c;按照官方给出方法进行安装后&#xff0c;不是报错&#xff0c;就是安装成功后运行不了。执行npm run dev后始终运行出错&#xff0c;判断肯定是对应版本问题&#xff0c;沿着这方向研究&#xff0c;最终运行成功了。 文档地址&#xff1a;安装 - …

PyTorch动态计算图构建的详细过程和代码

当用户定义了一个继承自 nn.Module 的神经网络模型&#xff0c;并通过调用 model.forward(input) 进行前向传播时&#xff0c;PyTorch 会根据执行的张量操作序列自动构建并维护一个动态计算图&#xff0c;其中的详细过程是&#xff1a; 初始化输入&#xff1a; 用户首先准备输入…

WordPress可以做企业官网吗?如何用wordpress建公司网站?

我们在国内看到很多个人博客网站都是使用WordPress搭建&#xff0c;但是企业官网的相对少一些&#xff0c;那么WordPress可以做企业官网吗&#xff1f;如何用wordpress建公司网站呢&#xff1f;下面boke112百科就跟大家简单说一下。 WordPress是一款免费开源的内容管理系统&am…

python爬虫4

#1.练习 # &#xff08;1&#xff09; 获取网页的源码 # &#xff08;2&#xff09; 解析 解析的服务器响应的文件 etree.HTML # (3) 打印 import urllib.request urlhttps://www.baidu.com/ headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit…

Quartz定时任务Spring FrameWork整合

spring 版本是4.3.6 Quartz 整合spring Quarz Job类使用spring beanQuartz配置 quartz.properties Quarz Job类使用spring bean <!-- 调度工厂 --><bean id"schedulerFactoryBean" lazy-init"false" autowire"no" class"org.sp…

如何系统地自学 Python?

自学 Python 需要一个结构化的方法&#xff0c;以确保您覆盖所有基础知识并逐步提高到更高级的概念。以下是一个系统自学 Python 的步骤指南&#xff1a; 1. 理解 Python 的应用 在开始之前&#xff0c;了解 Python 能做什么&#xff1a;Web 开发&#xff08;如使用 Django 或…

RabbitMQ介绍及简单操作

文章目录 一、同步调用二、异步调用三、MQ介绍1.安装RabbitMQ2.介绍RabbitMQ3.页面简单使用 一、同步调用 例如&#xff1a; #mermaid-svg-DMjF9XQ1VKYd5FjK {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-DMjF9XQ…

[Angular 基础] - Angular 渲染过程 组件的创建

[Angular 基础] - Angular 渲染过程 & 组件的创建 之前的笔记为了推进度写的太笼统了&#xff08;只有功能没有其他&#xff09;&#xff0c;当时学的时候知道是什么东西&#xff0c;但是学完后重新复习发现有些内容就记不清了&#xff0c;所以重新用自己的语言总结一下 …

java中如何使用Lambda表达式(十一)

Lambda表达式如何支持默认方法 在Java 8中&#xff0c;引入了默认方法&#xff08;Default Methods&#xff09;的概念&#xff0c;这使得接口可以包含具有默认实现的方法。Lambda表达式可以与默认方法一起使用&#xff0c;以便在接口中提供一组默认的行为&#xff0c;并且可以…