LeetCode之路——Add Two Numbers
来源:互联网 发布:ios 数组初始化 编辑:程序博客网 时间:2024/06/08 16:30
这一题相对来说还是有一点麻烦的,要考虑的情况比较多。
先贴上代码:
public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } public class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode l3=null;//结果链表 ListNode last =null;//定位链表最后一位 ListNode node =null;//node为新建节点 int i=0,j=0,temp=0; while(l1!=null && l2!=null) { temp=l1.val+l2.val+i; j=temp%10; //j为余数 node = new ListNode(j);//新建一个节点 node.next=null; i=temp/10; //i为进位 if(l3==null) l3=node; else last.next=node; l1=l1.next; //l1向后移动 l2=l2.next; //l2向后移动 last=node; //last定位到最后一个节点 } while(l1!=null)//当l1非空 { temp=l1.val+i; if(temp>=10) { i=temp/10; j=temp%10; temp%=10; } else { i=0; } node = new ListNode(temp); last.next=node; last=node; l1=l1.next; } while(l2!=null)//当l2非空 { temp=l2.val+i; if(temp>=10) { i=temp/10; j=temp%10; temp%=10; } else { i=0; } node = new ListNode(temp); last.next=node; last=node; l2=l2.next; } if(i!=0)//当进位未消除 { node = new ListNode(i); last.next=node; } return l3; } }
这里提供一些测试case:
[1]add[9,9]
[3,7]add[9,2]
[8,9,9]add[2]
[9,8]add[1]
这里也需要注意一下时间复杂度。。。。。。
0 0
- LeetCode之2— Add Two Numbers
- LeetCode之路——Add Two Numbers
- leetcode—Add Two Numbers
- leetcode之路002 Add Two Numbers
- LeetCode学习之路-Add Two Numbers
- LeetCode 之 Add Two Numbers — C 实现
- leetcode之Add Two Numbers
- LeetCode 之 Add Two Numbers
- leetcode之Add Two Numbers
- LeetCode之Add Two Numbers
- leetcode之Add Two Numbers
- leetcode之Add Two Numbers
- 【LeetCode】之Add Two Numbers
- LeetCode之Add Two Numbers
- leetcode之Add Two Numbers
- leetCode之 Add Two Numbers
- LeetCode之Add Two Numbers
- LeetCode —— Add Two Numbers
- 【数论】(莫比乌斯反演)关于莫比乌斯反演的小结
- 小米手机调用相机莫名崩溃问题
- Spring Mvc + Easyui中根据查询结果导出文件
- sql 第九章
- 安装caffe过程记录
- LeetCode之路——Add Two Numbers
- Android实现竖直显示的TextView【转载】
- Android开发环境搭建与HelloWord
- 获得System.Configure的两种高级用法
- Spring源码分析----IoC容器其他特性的设计与实现
- 使用数组实现链表
- libgo编译
- Android的热修复技术
- 【HPU-oj】-Triangles(锐角三角形个数,数学,思维)