2. Add Two Numbers
2016-03-14 20:07
357 查看
/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */ /** * @param {ListNode} l1 * @param {ListNode} l2 * @return {ListNode} */ var addTwoNumbers = function(l1, l2) { var ret = new ListNode(), //需要返回的那个单链表 p = ret, //移动的那个指针 c = 0; //进位,开始设置为0 while(l1 || l2){ var n1 = 0, n2 = 0; if(l1){ n1 = l1.val;l1 = l1.next;} if(l2){ n2 = l2.val;l2 = l2.next;} var tmp = n1+n2+c; c = 0; if(tmp > 9){ tmp -= 10 ; c= 1 ; } p.val = tmp; p.next = new ListNode(); var tmp2 = p; //为了计算最后那个进位 p = p.next; //指针后移,每次后移的时候已经创建了新的node结点。 } if(c === 1){ p.val = 1; } //还有个进位的话,p此时val指向1 else { tmp2.next = null;} //无进位了,末尾节点是tmp2,将它的next置为空 return ret; };
注意:最后的那个tmp2操作,开始搞错了。
相关文章推荐
- 欢迎使用CSDN-markdown编辑器
- 剑指offer(二维数组中的查找)
- IDEA 项目打成jar包
- [C/C++]_[判断程序是32位还是64位]
- YTU:学生成绩输入和输出
- 自定义进度条控件(附带百分比的)
- 【AHOI2013】【BZOJ3237】连通图
- UITextField setInputAccessaryView / setInputView
- 20160314 Servlet 入门
- openCV2马拉松第18圈——坐标变换
- [bzoj4417][SHOI2013]超级跳马
- 机房收费系统个人版重构总结
- 【数据结构与算法】(五) c 语言递归与汉诺塔实现
- 1. Two Sum
- hivemeta、sparkSubmit进程参数优化
- jqxGrid自定义行编辑器
- Android 热门博主汇总
- 输出星号图
- android 中样式修改关于shape 的相关问题
- {小结}NOIP2005TG