LeetCode 2.Add Two Numbers
来源:互联网 发布:dota2淘宝买饰品安全吗 编辑:程序博客网 时间:2024/06/05 09:57
class Solution {public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode *p=l1; ListNode *q=l2; ListNode *r=new ListNode(0); ListNode *head=r; int add=0; bool first=false; //第一个非零节点是否构造 if(p!=NULL && q!=NULL) { for(;p!=NULL && q!=NULL;p=p->next,q=q->next) { ListNode *tail=new ListNode(0); tail->val=p->val + q->val+add;//计算当前节点的数值 if(tail->val >= 10)//如果当前数值大于10,向后进位1 { tail->val = tail->val - 10; add=1;//进位数值 r->next=tail; r=tail; } else //当前节点数值小于10,进位0,判断是否创建了第一个节点 { add=0; r->next=tail; r=tail; } } } while(p!=NULL) { ListNode *tail=new ListNode(0); tail->val=p->val+add; if(tail->val>=10) { add=1; tail->val=tail->val-10; }else{ add=0; } r->next=tail; r=tail; p=p->next; } while(q!=NULL) { ListNode *tail=new ListNode(0); tail->val=q->val+add; if(tail->val >= 10) { add=1; tail->val=tail->val-10; }else{ add=0; } r->next=tail; r=tail; q=q->next; } if(add==1) //如果最后节点扫描完后,进位为1 { ListNode *tail=new ListNode(1); r->next=tail; } head=head->next; //去掉原始新建的r节点 return head; }};
0 0
- [LeetCode]2.Add Two Numbers
- LeetCode 2.Add Two Numbers
- LeetCode --- 2. Add Two Numbers
- [Leetcode] 2. Add Two Numbers
- 【leetcode】2. Add Two Numbers
- leetcode 2. Add Two Numbers
- LeetCode-2.Add Two Numbers
- [leetcode] 2. Add Two Numbers
- 【LeetCode】2. Add Two Numbers
- LeetCode - 2. Add Two Numbers
- LeetCode 2.Add Two Numbers
- LeetCode 2. Add Two Numbers
- Leetcode 2. Add Two Numbers
- 2. Add Two Numbers LeetCode
- leetcode 2. Add Two Numbers
- LeetCode-2. Add Two Numbers
- LeetCode 2. Add Two Numbers
- 2. Add Two Numbers----LeetCode
- .Net小白的第一篇博客
- Unicode 和 UTF-8 有何区别?
- MapReduce:计算Job运行时的CPU与内存平均利用率
- linux初学者的每周感悟 ——1
- mathtype安装以及office2016兼容问题
- LeetCode 2.Add Two Numbers
- cordova-plugin-file 文件操作整理(三)
- c# 链表(泛型)
- Linux学习之——历史命令和输出重定向
- 通过Unity实现 AOP
- CCTV下载
- ScrollView嵌套ListView显示和滑动问题
- a标签代码无误无法跳转,无悬浮效果原因
- 关于 inline-bolck间距问题的处理方法