#LeetCode 精选 TOP 面试题:2. 两数相加 @FDDLC
发布日期:2021-06-30 20:56:57
浏览次数:2
分类:技术文章
本文共 2021 字,大约阅读时间需要 6 分钟。
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例:
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8 原因:342 + 465 = 807来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-two-numbers 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
Java代码:
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 int getNodeSum(ListNode head) { int sum = 0; while(head != null) { sum++; head = head.next; } return sum; } public ListNode add(ListNode H, ListNode h) { ListNode H0 = H; for(int carry = 0; H != null; H = H.next) { if(h != null) { H.val += (h.val + carry); h = h.next; } else { H.val += carry; } if(H.val >= 10) { H.val -= 10; carry = 1; } else { carry = 0; } if(H.next == null && carry == 1) { ListNode carryNode = new ListNode(1, null); H.next = carryNode; break; } } return H0; } public ListNode addTwoNumbers(ListNode a, ListNode b) { int aSize = getNodeSum(a), bSize = getNodeSum(b); if(aSize > bSize) { return add(a, b); } else { return add(b, a); } } public static void main(String[] args) { ListNode a2 = new ListNode(9, null); ListNode a1 = new ListNode(8, a2); ListNode a0 = new ListNode(7, a1); ListNode b1 = new ListNode(1, null); ListNode b0 = new ListNode(3, b1); ListNode answer = new Solution().addTwoNumbers(a0, b0); while(answer != null) { System.out.print(answer.val + " "); answer = answer.next; } }}
转载地址:https://liuxingchang.blog.csdn.net/article/details/109131626 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月13日 23时31分54秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Windows10下的powershell美化教程
2019-04-30
利用ffmpeg合并音频和视频
2019-04-30
刷好老毛子系统进不了老毛子系统后台的解决办法
2019-04-30
Parallels Desktop 16 不能联网的解决办法
2019-04-30
SLAM中TUM数据集更改图片名字
2019-04-30
手把手教你--jquery chosen插件的使用和API(html下拉框美化)
2019-04-30
手把手教你--JAVA微信支付(H5支付)
2019-04-30
solr修改schema文件(solr修改配置文件)
2019-04-30
Bootstrap datetimepicker日期时间插件使用方法(日期时间选择器)
2019-04-30
字体图标库(Font Awesome)的使用--绝佳的图标字体库和CSS框架
2019-04-30
select下拉框分组展示插件的使用--(select-mania插件的使用)
2019-04-30
Java 8新特性之--lambda表达式的使用和应用
2019-04-30
Java Lambda表达式的应用--Stream API操作集合框架
2019-04-30
省市区三级联动插件Distpicker--前端实现地区三级联动
2019-04-30
solr的使用详解
2019-04-30
Myslq连接(JDBC)url属性的参数的设置
2019-04-30
关于Java继承,重载及运行的顺序的总结
2019-04-30