Golang | Leetcode Golang题解之第445题两数相加II

news2024/11/18 9:43:46

题目:

题解:

func reverseList(head *ListNode) *ListNode {
    if head == nil || head.Next == nil {
        return head
    }
    newHead := reverseList(head.Next)
    head.Next.Next = head // 把下一个节点指向自己
    head.Next = nil // 断开指向下一个节点的连接,保证最终链表的末尾节点的 next 是空节点
    return newHead
}

// l1 和 l2 为当前遍历的节点,carry 为进位
func addTwo(l1, l2 *ListNode, carry int) *ListNode {
    if l1 == nil && l2 == nil { // 递归边界:l1 和 l2 都是空节点
        if carry != 0 {
            return &ListNode{Val: carry} // 如果进位了,就额外创建一个节点
        }
        return nil
    }
    if l1 == nil { // 如果 l1 是空的,那么此时 l2 一定不是空节点
        l1, l2 = l2, l1 // 交换 l1 与 l2,保证 l1 非空,从而简化代码
    }
    carry += l1.Val // 节点值和进位加在一起
    if l2 != nil {
        carry += l2.Val // 节点值和进位加在一起
        l2 = l2.Next    // 下一个节点
    }
    l1.Val = carry % 10 // 每个节点保存一个数位
    l1.Next = addTwo(l1.Next, l2, carry/10) // 进位
    return l1
}

func addTwoNumbers(l1, l2 *ListNode) *ListNode {
    l1 = reverseList(l1)
    l2 = reverseList(l2) // l1 和 l2 反转后,就变成【2. 两数相加】了
    l3 := addTwo(l1, l2, 0)
    return reverseList(l3)
}

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

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

相关文章

Study-Oracle-10-ORALCE19C-RAC集群搭建(一)

一、硬件信息及配套软件 1、硬件设置 RAC集群虚拟机:CPU:2C、内存:10G、操作系统:50G Openfile数据存储:200G (10G*2) 2、网络设置 主机名公有地址私有地址VIP共享存储(SAN)rac1192.168.49.13110.10.10.20192.168.49.141192.168.49.130rac2192.168.49.13210.10.10.3…

使用dockerfile来构建一个包含Jdk17的centos7镜像(构建镜像:centos7-jdk17)

文章目录 1、dockerfile简介2、入门案例2.1、创建目录 /opt/dockerfilejdk172.2、上传 jdk-17_linux-x64_bin.tar.gz 到 /opt/dockerfilejdk172.3、在/opt/dockerfilejdk17目录下创建dockerfile文件2.4、执行命令构建镜像 centos7-jdk17 : 不要忘了后面的那个 .2.5、查看镜像是…

Mixture-of-Experts (MoE): 条件计算的诞生与崛起【上篇】

大型语言模型(LLM)的现代进步主要是缩放定律的产物[6]。 假设模型是在足够大的数据集上训练出来的,那么随着底层模型规模的增加,我们会看到性能的平滑提升。 这种扩展规律最终促使我们创建了 GPT-3 以及随后的其他(更强…

力扣高频 SQL 50 题(基础版)|分析、题解

注意一些语法 1、group by出现在having前面,但是having中所使用的聚合必须是select中的 2、date类型之间的比较:datediff() 差的绝对值 or 用字符框起来比较边界 3、算日期长度需要相减之后加一 4、round(, n)n默认是0&#x…

【Java】内存分析 —— 栈内存、堆内存与垃圾对象的形成

图1 内存分析 从图1可以看出,在创建Person对象时,程序会占用两块内存区域,分别是栈内存和堆内存。其中Person类型的变量p被存放在栈内存中,它是一个引用,会指向真正的对象;通过new Person()创建的对象则放…

UDP校验和计算及网络中的校验和机制

UDP (User Datagram Protocol) 是一种无连接的传输层协议,它不像 TCP 那样提供可靠的传输保证。虽然 UDP 不保证数据可靠性,但它仍然提供了一个可选的校验和机制来检测数据在传输过程中出现的错误。 理解UDP校验和的计算过程和其在网络中的作用至关重要。…

学习C语言(21)

整理今天的学习内容 1.结构体实现位段 (1)位段的声明 位段的成员必须是 int、unsigned int 或signed int ,在C99中位段成员的类型也可以选择其他类型 例: (2)位段的内存分配 位段的空间上是按照需要以…

【 Java 】工具类 —— Collections 与 Arrays 的实用操作全解析

Collections工具类 在Java中,针对集合的操作非常频繁,例如对集合中的元素排序、从集合中查找某个元素等。针对这些常见操作,Java提供了一个工具类专门用来操作集合,这个类就是Collections,它位于java.util包中。Colle…

揭开量子计算和加密未来的秘密

加密保护您的数据 您是否想知道如何保证您的在线数据安全?这就是加密的作用所在。加密是一种使用秘密代码更改数据的过程。这些更改只能由拥有正确密钥的接收者解码和读取。 加密是保护敏感和个人信息安全的重要工具。使用加密的一些示例包括信用卡详细信息、消息…

嵌入式linux系统中Sysfs设备驱动管理方法

大家好,今天主要给大家分享一下,如何使用linux系统里面的Sysfs进行设备管理,希望对大家有所收获。 第一:Sysfs设备驱动管理简介 sysfs 是非持久性虚拟文件系统,它提供系统的全局视图,并通过它们的 kobiect 显示内核对象的层次结构(拓扑)。每个 kobiect 显示为目录和目录…

一次 Spring 扫描 @Component 注解修饰的类坑

问题现象 之前遇到过一个问题,在一个微服务的目录下有相同功能 jar 包的两个不同的版本,其中一个版本里面的类有 Component 注解,另外一个版本的类里面没有 Component 注解,且按照加载的顺序,没有 Component 注解的 j…

maven安装教程(图文结合,最简洁易懂)

前提 所有的Maven都需要Java环境,所以首先需要安装JDK,本教程默认已安装JDK1.8 未安装JDK可看JDK安装教程:JDK1.8安装教程 主要分为两个大步骤:安装、配置 一、下载和安装Maven 1、将maven解压后的文件夹复制到D盘根目录 (最好…

fmql之Linux内核定时器

内容依然来自于正点原子。 Linux内核时间管理 内容包括: 系统频率设置节拍率:高节拍率的优缺点全局变量jiffies绕回的概念(溢出)API函数(处理绕回) HZ为每秒的节拍数 Linux内核定时器 内容包括&#xf…

3-1.Android Fragment 之创建 Fragment

Fragment Fragment 可以视为 Activity 的一个片段,它具有自己的生命周期和接收事件的能力,它有以下特点 Fragment 依赖于 Activity,不能独立存在,Fragment 的生命周期受 Activity 的生命周期影响 Fragment 将 Activity 的 UI 和…

BUUCTF蜘蛛侠呀

解压后发现是流量包,好多icmp包 发现icmp包尾部有$$STRAT打头16进制的字符串,好多重复得。我们只需要提取尾部这些字符串是当icmp的type0时上图标识为褐色的字符串,还需要把16进制的字符串转为对应的字符串(bytes 类型&#xff09…

YOLOv8改进 | 融合篇,YOLOv8主干网络替换为MobileNetV3+CA注意机制+添加小目标检测层(全网独家首发,实现极限涨点)

原始 YOLOv8 训练结果: YOLOv8 + MobileNetV3改进后训练结果: YOLOv8 + MobileNetV3 + CA 注意机制 + 添加小目标检测层改进后训练结果(极限涨点): 摘要 小目标检测难点众多,导致很多算法对小目标的检测效果远不如大中型目标。影响算法性能的主要原因如下:第一,小目…

Windows暂停更新

目录 前言注册表设定参考 前言 不想Windows自动更新,同时不想造成Windows商店不可用,可以采用暂停更新的方案。 但是通过这里设定的时间太短了,所以我们去注册表设定。 注册表设定 win r 输入 regedit进入注册表 HKEY_LOCAL_MACHINE\SOFT…

python 02 List

Python 1-14 列表 第一课 1437. 是否所有 1 都至少相隔 k 个元素 class Solution:def kLengthApart(self, nums: List[int], k: int) -> bool:cnt k # 处理第一个 1for i, x in enumerate(nums):if x 1:if cnt < k: return Falsecnt 0 # 遇到 1 从新记数else: cnt …

解决银河麒麟V10中/data目录执行权限问题

解决银河麒麟V10中/data目录执行权限问题 1、问题描述2、解决方案步骤一&#xff1a;编辑fstab文件步骤二&#xff1a;重启系统步骤三&#xff1a;验证更改 3、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在使用银河麒麟桌面操作系…

【零散技术】Odoo PDF 打印问题问题合集

序言:时间是我们最宝贵的财富,珍惜手上的每个时分 Odoo PDF打印 是一个必备功能&#xff0c;但是总会遇到一些奇奇怪怪的问题&#xff0c;此帖仅做记录&#xff0c;方便查阅。 目录 1、样式丢失 2、部分结构丢失 3、没有中文字体 1、样式丢失 这种情况一般是由于 …