LeetCode 2.Add Two Numbers
2017-02-25 17:42
316 查看
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; 4000 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; } };
相关文章推荐
- LeetCode AddTwoNumbers
- Leetcode: Add Two Numbers (2)
- [c++] LeetCode Add Two Numbers问题
- LeetCode 002 Add Two Numbers
- LeetCode 2. Add Two Numbers(C++)
- LeetCode 2. Add Two Numbers
- Add Two Numbers Leetcode 链表相加
- Leetcode || Add Two Numbers
- [Leetcode] Add Two Numbers (Java)
- LeetCode-2-Add Two Numbers
- LeetCode (Add Two Numbers)
- leetcode-2-AddTwoNumbers
- 【Leetcode】Add Two Numbers
- Leetcode Add Two Numbers
- 新手做LeetCode 2 Add Two Numbers
- leetcode[2]:Add Two Numbers
- LeetCode 2_Add Two Numbers
- 【leetcode】Add Two Numbers-----Java
- [LeetCode] Algorithms-2. Add Two Numbers
- leetcode Add Two Numbers