当前位置: 首页 > article >正文

【Leetcode Top 100】2. 两数相加

问题背景

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 0 0 之外,这两个数都不会以 0 0 0 开头。

数据约束

  • 每个链表中的节点数在范围 [ 1 , 100 ] [1, 100] [1,100]
  • 0 ≤ N o d e . v a l ≤ 9 0 \le Node.val \le 9 0Node.val9
  • 题目数据保证列表表示的数字不含前导零

解题过程

模拟大整数加法,在循环中进位变量可以用来累计和,自己写的时候多了不少冗余代码。

具体实现

/**
 * 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 dummy = new ListNode(0);
        ListNode cur = dummy;
        int sum = 0, carry = 0;
        // 有一个链表非空或进位不为零就应该继续执行
        while(l1 != null || l2 != null || carry != 0) {
            if(l1 != null) {
                carry += l1.val;
                l1 = l1.next;
            }
            if(l2 != null) {
                carry += l2.val;
                l2 = l2.next;
            }
            // 此时 carry 中记录的是这一轮的求和结果
            cur = cur.next = new ListNode(carry % 10);
            carry /= 10;
        }
        return dummy.next;
    }
}

http://www.kler.cn/a/421493.html

相关文章:

  • Unity AssetBundles(AB包)
  • jvm-46-jvm Thread Dump 线程的信息获取+可视分析化工具 FastThread
  • Google Cloud 混合云部署连接方式最佳实践案例讲解
  • 计算机网络:IP协议详细讲解
  • Python语法基础(七)
  • SpringMVC:入门案例
  • 海康gige工业相机无驱动取像突破(c#实现,最后更新,你也可以移植到linux下去用)
  • 蓝桥杯第 23 场 小白入门赛
  • Spring Boot项目的创建
  • 微服务搭建----springboot接入Nacos2.x
  • 【Java基础面试题009】Java的I/O流是什么?
  • 160-两路14位400Msps AD,两路16位400Msps DA FMC子卡模块
  • 基于PySpark 使用线性回归、随机森林以及模型融合实现天气预测
  • 机器学习:精确率与召回率的权衡
  • 【服务器问题】xshell 登录远程服务器卡住( 而 vscode 直接登录不上)
  • Linux常用命令行
  • 澎峰科技助力中国移动 重磅发布智算“芯合”算力原生基础软件栈2.0
  • 剩余银饰的重量
  • 记录一次网关异常
  • 配置宝塔php curl 支持http/2 发送苹果apns消息推送
  • 基于单片机设计了居家智能音箱系统(论文+源码)
  • Java面试要点50 - List的线程安全实现:CopyOnWriteArrayList
  • @staticmethod、@classmethod
  • 什么是前端构建工具?比如(Vue2的webpack,Vue3的Vite)
  • echarts地图立体效果,echarts地图点击事件,echarts地图自定义自定义tooltip
  • 工程设计行业内外网文件交换解决方案:FileLink助力高效、安全的跨网协作