温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
  • 忘记密码?
登录注册×
获取短信验证码
其他方式登录
点击 登录注册 即表示同意 《亿速云用户服务条款》
  • 服务器
  • 数据库
  • 开发技术
  • 网络安全
  • 互联网科技
登 录 注册有礼
最新更新 网站标签 地图导航
产品
  • 首页 > 
  • 教程 > 
  • 互联网科技 > 
  • 大数据 > 
  • Java如何实现两数相加

Java如何实现两数相加

发布时间:2022-01-17 11:41:10 来源:亿速云 阅读:252 作者:小新 栏目: 大数据

这篇文章主要为大家展示了“Java如何实现两数相加”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java如何实现两数相加”这篇文章吧。


 

题目描述

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例:

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807
 
 

解题方案

 

思路

  • 标签:链表

  • 将两个链表看成是相同长度的进行遍历,如果一个链表较短则在前面补0,比如 987 + 23 = 987 + 023 = 1010

  • 每一位计算的同时需要考虑上一位的进位问题,而当前位计算结束后同样需要更新进位值

  • 如果两个链表全部遍历完毕后,进位值为1,则在新链表最前方添加节点1

  • 小技巧:对于链表问题,返回结果为头结点时,通常需要先初始化一个预先指针pre,该指针的下一个节点指向真正的头结点head。使用预先指针的目的在于链表初始化时无可用节点值,而且链表构造过程需要指针移动,进而会导致头指针丢失,无法返回结果。

 

代码

/** * 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;    }}
    

画解

Java如何实现两数相加

Java如何实现两数相加

Java如何实现两数相加

Java如何实现两数相加

Java如何实现两数相加

Java如何实现两数相加

Java如何实现两数相加

Java如何实现两数相加



以上是“Java如何实现两数相加”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节
推荐阅读:
  1. python两组随机数相加的方法
  2. Python怎么实现两数相加

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java
  • 上一篇新闻:
    java如何实现最长连续递增序列
  • 下一篇新闻:
    怎么用python画个奥运五环

猜你喜欢

  • c语言中怎么调用ffmpeg合成视频
  • java range函数的使用方法是什么
  • java range函数的作用是什么
  • java如何修改list里面的值
  • linux内核文件如何查看
  • centos7内核列表怎么查看
  • linux新加硬盘不显示如何解决
  • centos新加硬盘看不到怎么解决
  • centos7扩容的方法是什么
  • php中$_request的作用是什么
最新资讯
  • 如何在Laravel中配置和使用Redis缓存
  • 解释Laravel中的反射注入
  • 如何在Laravel中进行表单请求验证
  • 什么是Laravel Echo它如何用于WebSockets
  • Laravel路由中的中间件是如何分组的
  • 如何在Laravel中处理异常和错误
  • Laravel项目如何进行性能优化
  • 如何在Laravel中实现数据种子化
  • 解释Laravel中的Eloquent访问器和修改器
  • 在Laravel中如何使用模型观察者
相关推荐
  • python3中如何实现两数相加
  • 两数相加的实现方法有哪些
  • Java怎么实现两数之和
  • Java怎么实现两数相加
  • JavaScript如何实现两数相加
  • 如何实现数据结构与算法之两数相加
  • 如何使用java实现两数相加
  • LeetCode中两数相加的示例分析
  • java如何实现两数之和
  • javascript如何实现两变量相加

相关标签

java8 java 高并发 继续学习 part1 java 8 javax java技术 java ee java web java项目 java源文件 java单例模式 java接口 javajava笔记编程学习 java对象 java servlet java rmi java数组 java api java锁 javax.servlet java me
AI

深圳SEO优化公司保定营销型网站建设推荐乌海网页设计德阳seo网站推广哪家好坪山至尊标王枣庄网站设计模板价格宁波外贸网站建设报价大丰网站搜索优化推荐德州网站优化推广南充网站建设设计推荐松原高端网站设计报价德州英文网站建设报价孝感网站优化按天扣费价格朝阳网站定制价格毕节seo优化报价本溪网站优化排名推荐福永模板推广推荐新乡网站推广工具哪家好衡水至尊标王海东百度爱采购公司巴中seo排名价格廊坊关键词排名推荐临沧网站优化软件价格四平网站推广工具报价福永网站优化福永设计公司网站多少钱永湖网络推广湛江外贸网站设计多少钱菏泽网络营销报价霍邱seo网站优化哪家好通化网站开发报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化