LeetCode第2题两数相加

简介: 该文章介绍了 LeetCode 第 2 题两数相加的解法,通过同时遍历两个链表的头节点,创建新链表接收计算结果,时间复杂度为 O(n)。

继续打卡算法题,今天学习的是第LeetCode的第2题两数相加,这道题目是道中等题。

image.png

分析一波题目

单链表,都需要从头开始遍历,我们可以同时开始遍历两个头节点,创建一个新链表接收新数字,把每位计算的值记录到新的节点,有进位需要保存下来,给下一个节点使用。

同时在使用新链表的时候,一般会使用一个虚拟节点指向头节点,这样可以方便找到头节点。

编码解决

/**
 * 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) {
   
   

        if (l1 == null) {
   
   
            return l2;
        }
        if(l2 == null) {
   
   
            return l1;
        }
        ListNode dumy = new ListNode(-1);
        int bit = 0;
        ListNode last = dumy;
        while(l1 !=null || l2!=null || bit > 0) {
   
   
            int v1 = l1 == null ? 0 : l1.val;
            int v2 =  l2==null ? 0: l2.val;
            ListNode l3 = new ListNode(-1);
            //有进位的情况
            if((v1 + v2 + bit) >= 10) {
   
   
                l3 = new ListNode((v1 + v2 + bit) % 10);
                //进位存下来
                bit = (v1 + v2 + bit) / 10;
            } else {
   
   

                l3 = new ListNode(v1 + v2 + bit);
                bit = 0;
            }
            l1 =  l1 == null ? null : l1.next;
            l2 = l2 == null ? null : l2.next;
            last.next = l3;
            last = l3;
        }

        return dumy.next;
    }
}

总结

这个题目就是简单的遍历节点,然后直接相加就可以,时间复杂度O(n)就可以解决

相关文章
|
存储
13-iOS消息转发机制以及常用场景
13-iOS消息转发机制以及常用场景
219 0
|
设计模式 Java 关系型数据库
设计模式——工厂模式
工厂模式介绍、静态简单工厂模式、工厂方法模式、抽象工厂模式、JDK 源码分析
设计模式——工厂模式
|
6月前
|
安全 网络安全 虚拟化
Hyper-V网络连接无响应解决方案
当Hyper-V虚拟机出现网络连接无响应时,可从以下方面排查:1) 检查物理网络连接,确保设备正常;2) 验证虚拟网络配置,包括虚拟交换机和网络适配器设置;3) 更新驱动程序以解决兼容性问题;4) 调整防火墙和安全软件设置;5) 重启相关服务和设备;6) 使用命令行工具诊断网络问题;7) 检查BIOS中虚拟化技术是否启用;8) 排查IP冲突和其他日志错误。综合以上步骤,可有效修复网络连接故障。
|
缓存 应用服务中间件 nginx
「Python系列」Python uWSGI
uWSGI(全称为“universal web server gateway interface”)是一个高性能的Python Web服务器和应用程序容器。它可以将Python Web应用程序与Web服务器分离,从而实现高并发、低延迟的服务。uWSGI支持多种Web服务器和应用程序框架,如Nginx、Apache、Django、Flask等。
505 0
|
11月前
|
前端开发 JavaScript API
前端开发新趋势:探索WebAssembly与WebGL在游戏开发中的应用
【10月更文挑战第1天】前端开发新趋势:探索WebAssembly与WebGL在游戏开发中的应用
416 2
|
机器学习/深度学习 人工智能 搜索推荐
AI低代码平台:创新开发新选择
Zoho Creator、Airtable、Appian、Creatio Atlas及织信等低代码平台,通过集成AI功能如预测分析、情感分析、自动化文案创作等,显著提升了开发效率与智能化水平。例如,Zoho Creator利用AI预测客户需求并分析情绪;Airtable借助OpenAI模型自动生成代码与文案;Appian通过AI技能自动处理文档与邮件;Creatio Atlas运用AI优化决策流程并提供个性化推荐;织信则集成ChatGPT与Stable Diffusion,实现智能开发与图像生成。这些平台不仅支持多种业务场景,还简化了应用程序开发流程。
318 5
|
小程序 JavaScript Java
【资料】阿里Java开发手册
本文是关于分享阿里Java开发手册资源及促进编程规范学习的指南。作者以个人经历引入,讲述了公司领导通过细致讲解阿里Java开发手册,提升了团队对代码质量和编程规范的认识
1634 0
【资料】阿里Java开发手册
|
Ubuntu Linux C语言
嵌入式Linux系列第2篇:运行Hello World
嵌入式Linux系列第2篇:运行Hello World
|
Android开发 Windows 内存技术
刷机不求人 HTC手机刷机教程指南(转)
刷机不求人 HTC手机刷机教程指南(转)
521 3
|
Kubernetes Java Docker
使用Kubernetes部署Spring Boot应用的实践
使用Kubernetes部署Spring Boot应用的实践