
【java】面试题 02.05. 链表求和---注意细节,避免踩坑!!!
发布日期:2021-05-07 02:22:49
浏览次数:19
分类:原创文章
本文共 1074 字,大约阅读时间需要 3 分钟。
给定两个用链表表示的整数,每个节点包含一个数位。
这些数位是反向存放的,也就是个位排在链表首部。
编写函数对这两个整数求和,并用链表形式返回结果。
示例:
输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295
输出:2 -> 1 -> 9,即912
进阶:思考一下,假设这些数位是正向存放的,又该如何解决呢?
示例:
输入:(6 -> 1 -> 7) + (2 -> 9 -> 5),即617 + 295
输出:9 -> 1 -> 2,即912
代码:public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode head1=l1,head2=l2,p1=head1; int a=0; while(l1!=null&&l2!=null) { p1=l1; int b=l1.val+l2.val+a; l2.val=l1.val=b%10; a=b/10; l1=l1.next; l2=l2.next; } if(a==0) { return l1==null?head2:head1; } int b=0; int k=0; if(l1==null&&l2!=null) { k=2; while(l2!=null) { b=l2.val+a; l2.val=b%10; a=b/10; p1=l2; if(a==0) { return head2; } l2=l2.next; } }else if(l1!=null&&l2==null) { while(l1!=null) { b=l1.val+a; l1.val=b%10; a=b/10; p1=l1; if(a==0) { return head1; } l1=l1.next; } } ListNode p=new ListNode(a); p.val=a; p1.next=p; p.next=null; if(k==2) { return head2; } return head1; }
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年03月28日 03时27分26秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
还在一个一个手动安装虚拟机吗?Cobbler自动部署装机一键最小化安装打把游戏就好了
2021-05-08
程序员应该知道的97件事
2021-05-08
create-react-app路由的实现原理
2021-05-08
Linux环境变量配置错误导致命令不能使用(杂谈)
2021-05-08
openstack安装(九)网络服务的安装--控制节点
2021-05-08
shell编程(六)语言编码规范之(变量)
2021-05-08
vimscript学习笔记(二)预备知识
2021-05-08
Android数据库
2021-05-08
HTML基础,块级元素/行内元素/行内块元素辨析【2分钟掌握】
2021-05-08
STM8 GPIO模式
2021-05-08
omnet++
2021-05-08
23种设计模式一:单例模式
2021-05-08
Qt中的析构函数
2021-05-08
C语言实现dijkstra(adjacence matrix)
2021-05-08
三层框架+sql server数据库 实战教学-徐新帅-专题视频课程
2021-05-08
【单片机开发】智能小车工程(经验总结)
2021-05-08
【单片机开发】基于stm32的掌上游戏机设计 (项目规划)
2021-05-08
C++&&STL
2021-05-08
子集(LeetCode 78)
2021-05-08