2. 两数相加 LeetCode
发布日期:2021-06-20 05:37:01
浏览次数:4
分类:技术文章
本文共 1364 字,大约阅读时间需要 4 分钟。
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例:
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807
分析:
本题是大整数相加。如果将两个数存为基本类型,使用longlong型存储结果也会溢出。本题属于模拟题,通用做法是转化为字符串,然后模拟加法运算过程,最后按条件输出即可。本题的技巧在于仔细思考发现输出的每一个字符如‘7’、‘0’等可以直接输出,不需要先算出结果字符串。
通用方法:
public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode listNode = new ListNode(0); ListNode listNode1 =listNode; String a="",b="",sum=""; while (l1!=null){ //接收l1为字符串 a +=String.valueOf( l1.val); l1=l1.next; } while (l2!=null){ //接收l2为字符串 b +=String.valueOf(l2.val); l2=l2.next; } int jin=0,i; for ( i = 0; ib.length()){ while (i
本题特例解法:
public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode listNode = new ListNode(0); ListNode listNode1 =listNode; int carray=0; while(l1!=null || l2!=null || carray!=0){ int temp= (l1 !=null ? l1.val:0) + (l2!=null? l2.val : 0 )+ carray ; carray=temp/10; listNode1.next=new ListNode(temp%10); if (l1 != null)l1=l1.next; if (l2 != null)l2=l2.next; listNode1= listNode1.next; } return listNode.next; }
转载地址:https://blog.csdn.net/h2453532874/article/details/88069711 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年03月15日 15时58分03秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
开发优势_小程序开发优势好处有哪些
2019-04-21
4光影补丁_我的世界seus光影包
2019-04-21
aria手机下载_Aria2App
2019-04-21
汇编指令msr_ARM汇编:MRS和MSR指令
2019-04-21
lsof查看占用高_lsof解决磁盘占用过高,查询却无大文件处理一例!
2019-04-21
java ee6教程_Java EE 极简教程(六):框架的选择
2019-04-21
java io流过滤流_IO流分类详细介绍和各种字节流类介绍与使用 过滤流 字节流
2019-04-21
java预处理指令_Java程序员学C++_1_C++中的预处理命令 | 学步园
2019-04-21
java中的%不对 如何处理_Java心得--异常及其处理
2019-04-21
java 上传速度计算_java常见3种文件上传速度对比和文件上传方法详细代码
2019-04-21
java 试图模版_图解Java设计模式之模板模式
2019-04-21
支付宝 java 乱码_支付宝即时到账接口中文乱码问题
2019-04-21
java中的handler理解_handler 与message的一些理解
2019-04-21
JAVA礼物题_这些Java面试题,你一定要记住!
2019-04-21
java 隐藏email_java Email
2019-04-21