LeetCode2-两数相加

在这里插入图片描述

大佬解法

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode pre = new ListNode(0);
        ListNode cur = pre;
        int carry = 0;
        while(l1 != null || l2 != null) {
            int x = l1 == null ? 0 : l1.val;
            int y = l2 == null ? 0 : l2.val;
            int sum = x + y + carry;
            
            carry = sum / 10;
            sum = sum % 10;
            cur.next = new ListNode(sum);

            cur = cur.next;
            if(l1 != null)
                l1 = l1.next;
            if(l2 != null)
                l2 = l2.next;
        }
        if(carry == 1) {
            cur.next = new ListNode(carry);
        }
        return pre.next;
    }
}


自己的解法

写的跟屎一样,虽然击败100%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) {
        int sum=0;
        ListNode ans=new ListNode();
        ListNode p=ans,ptr=null;
        for(;;){
            if(l1!=null&&l2!=null)
            {
                sum=l1.val+l2.val;
                if(p.val==1){
                    sum+=1;
                }
                if(sum>=10){
                    p.next=new ListNode(1);
                    p.val=sum%10;
                }else{
                    p.val=sum;
                    if(l1.next!=null||l2.next!=null)//防止产生前导0
                    {
                        p.next=new ListNode();
                    }
                }
                l1=l1.next;
                l2=l2.next;
                ptr=l1==null?l2:l1;
                p=p.next;
            }
            else if(ptr!=null){
            
                int null_sum=0;
                if(p.val==1){
                    null_sum=ptr.val+p.val;
                    if(null_sum>=10){
                        p.next=new ListNode(1);
                        p.val=null_sum%10;

                    }else{
                        p.val=null_sum;
                        if(ptr.next!=null){//防止产生前导0
                            p.next=new ListNode();
                        }
                        
                    }
                }
                else{
                    p.val=ptr.val;
                    if(ptr.next!=null){//防止产生前导0
                        p.next=new ListNode();
                    }
                }
                //往后遍历
                ptr=ptr.next;
                p=p.next;
            }else{
                break;
            }
        }
        return ans; 
    }

}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ERR_PNPM_INVALID_WORKSPACE_CONFIGURATION packages field missing or empty

vue执行 pnpm install命令时,报 ERR_PNPM_INVALID_WORKSPACE_CONFIGURATION  packages field missing or empty错,在网上查询了很久,也没有传出来结果,最后发现是pnpm的版本不对引起的。 我先执行的是npm install -g pnpm&…

口袋参谋:如何找竞争小,优势大的蓝海词?

​ 作为淘宝天猫的中小卖家,99.99%的人都知道流量对于店铺的重要性,如果没有流量的话,店铺是肯定没有销量的。 提高流量的方式有很多种,比如优化宝贝图片、标题、关键词等,由于在淘宝天猫上同一宝贝的竞争力太大了…

成果分享丨学生学徒“行业”+大数据模型分享

学生学徒 阶段成果分享 为进一步提升学生学徒制学员的技术水平,增强学员的企业项目应用能力,助力学员全面发展。自学徒制开展以来,泰迪指导学员完成多项企业应用项目,开展多次项目经验分享交流,让学员在实践中不断学…

蘑菇街获得mogujie商品详情 API 返回值说明

速卖通API接口是速卖通平台提供的一种数据交换接口,可以帮助卖家快速获取平台上的商品信息、订单信息、用户信息等数据,以便在自己的应用程序中进行展示、管理或分析。 速卖通API接口可以通过以下步骤进行使用: 注册速卖通账号并获取API密钥…

如何将本地Portainer管理界面结合cpolar内网穿透工具实现远程浏览器访问

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer 公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 前言 Portainer 是一个轻量级的容器管理工具,可以通过 Web 界面对 Docker 容器进行管理和监控。它提供了可…

内网穿透的应用-通过内网穿透快速搭建公网可访问的Spring Boot接口调试环境

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…

软件开发选择个人好?还是公司好?一篇文章带你了解

随着科技的发展,软件开发已成为一个相对复杂的行业,需要专业的技能和经验来保证项目的成功。然而,一些企业或个人可能会选择个人开发者进行软件开发,虽然这种选择可能会带来一些弊端。本文将探讨选择个人开发者进行软件开发的弊端…

分区格式化后的数据恢复指南,从此不再丢失重要数据

在日常生活中,我们使用电脑时,可能会因为种种原因需要对硬盘进行分区格式化。分区格式化是一种对硬盘进行重新划分存储空间的过程,它将删除该分区的所有数据,使其恢复到初始状态。然而,在执行分区格式化操作之后&#…

服务器数据恢复—VMware虚拟化下误操作导致服务器崩溃的数据恢复案例

服务器故障&分析: VMware虚拟化,vmfs文件系统,共3块磁盘。工作人员误操作将VMware虚拟化重装系统,服务器崩溃。 正常情况下,重装系统会导致文件系统元文件被覆盖。要恢复数据须找到重装系统前的文件系统残留信息并…

【EI会议征稿】第三届网络安全、人工智能与数字经济国际学术会议(CSAIDE 2024)

第三届网络安全、人工智能与数字经济国际学术会议(CSAIDE 2024) 2024 3rd International Conference on Cyber Security, Artificial Intelligence and Digital Economy 第三届网络安全、人工智能与数字经济国际学术会议(CSAIDE 2024&#…

深入了解域名与SSL证书的关系

在如今数字化的世界里,网络安全成为我们关注的重要议题之一。为了确保数据在网络上传输的安全性,我们通常会采取各种安全措施,其中最常用的就是SSL证书。然而,很多人并不了解SSL证书是如何与域名相互关联的。 首先,我…

CentOS to 浪潮信息 KeyarchOS 迁移体验与优化建议

浪潮信息KeyarchOS简介 KeyarchOS即云峦操作系统(简称KOS), 是浪潮信息研发的一款面向政企、金融等企业级用户的 Linux 服务器操作系统。它基于Linux内核、龙蜥等开源技术,支持x86、ARM 等主流架构处理器,其稳定性、安全性、兼容性和性能等核心能力均已…

elasticsearch+canal增量、全量同步

目录 一、搭建环境: 1.1 下载软件上传到linux目录/data/soft下 1.2 把所有软件解压到/data/es-cluster 二、单节点(多节点同理)集群部署elasticsearch 2.1 创建es用户 2.2 准备节点通讯证书 2.3 配置elasticsearch,编辑/d…

Flutter应用-使用sqflite升级数据库

文章目录 问题描述具体做法代码示例更多条件限制升级 数据库迁移和备份简介数据库迁移数据库备份 问题描述 使用fluttter开发的应用程序发布后,发现数据库有些设计不合理。如何来更新数据库呢? 使用sqflite来处理数据库,但是第一版软件发布后…

【Vue3 + webStorm】 求助,vite.config.js代理不生效

求助,vite.config.js代理不生效 上面为代理写法 上面为vue组件中,axios跳转写法 网页控制台一直跳转不到8080端口,请问是为什么?

iframe渲染后端接口文件和实现下载功能

一:什么是iframe? 1、介绍 iframe 是HTML 中的一种标签,全称为 Inline Frame,即内联框架。它可以在网页中嵌入其他页面或文档,将其他页面的内容以框架的形式展示在当前页面中。iframe的使用方式是通过在HTML文档中插入…

opencv(2): 视频采集和录制

视频采集 相关API VideoCapture()cap.read(): 返回两个值,第一个参数,如果读到frame,返回 True. 第二个参数为相应的图像帧。cap.release() VideoCapture cv2.VideoCapture(0) 0 表示自动检测,如果在笔记本上运行&…

CCF-C类 | 仅1个月Accept!中科院2区SCI,Elsevier出版社,审稿快易录用!

【SciencePub学术】本期,小编给大家推荐的是一本CCF-C类、审稿快易录用,且对国人相当友好的SCI期刊,其详情及如下: 期刊简介 IMAGE AND VISION COMPUTING ISSN:0262-8856 E-ISSN:1872-8138 IF&#x…

2023亚太杯数学建模思路 - 案例:FPTree-频繁模式树算法

文章目录 算法介绍FP树表示法构建FP树实现代码 建模资料 ## 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法,就是频繁模式树算法&#xff0c…

火山引擎ByteHouse:4000字总结,Serverless在OLAP领域应用的五点思考

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 作为云计算的下一个迭代,Serverless可以使开发者更专注于构建产品中的应用,而无需考虑底层堆栈问题。伴随着近年来相关技术成熟度的增加&…