leetcode002:Add Two Numbers
2015-03-25 19:49
411 查看
题目
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
思路
弄了半天才明白题目的意思,恩,发现就是模拟加法的过程,记得满10加1就ok啦。代码
class Solution { public: ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) { ListNode * answer = NULL; ListNode * p1 = l1, *p2 = l2,*ansp; int sum; int carry=0; while (p1!=NULL&&p2!=NULL) { sum = p1->val + p2->val + carry; if (sum > 9) { sum = sum % 10; carry = 1; } else carry = 0; ListNode * node = new ListNode(sum); if (!answer) ansp = answer = node; else { ansp->next = node; ansp = ansp->next; } p1 = p1->next; p2 = p2->next; //cout << sum << endl; } ListNode *p = NULL; if (p1) p = p1; if (p2) p = p2; while (p) { sum = p->val + carry; if (sum > 9) { sum = sum % 10; carry = 1; } else carry = 0; ListNode * node = new ListNode(sum); if (!answer) ansp = answer = node; else { ansp->next = node; ansp = ansp->next; } p = p->next; } if (carry) { ListNode * node = new ListNode(carry); ansp->next = node; } return answer; } };
相关文章推荐
- 【LeetCode-面试算法经典-Java实现】【002-Add Two Numbers (单链表表示的两个数相加)】
- LeetCode 002 Add Two Numbers
- leetcode [002] : Add Two Numbers
- LeetCode 002 Add Two Numbers
- LeetCode 002 Add Two Numbers
- leetcode-002 Add Two Numbers
- Leetcode_002_Add_Two_Numbers
- leetcode 002 Add Two Numbers
- Add Two Numbers - leetcode002
- 2017-09-07 LeetCode_002 Add Two Numbers
- LeetCode 002-Add Two Numbers
- [LeetCode 002] Add Two Numbers
- 【leetcode】002 Add Two Numbers
- 002 Add Two Numbers [Leetcode]
- LeetCode 002 AddTwoNumbers
- leetcode 002 Add_Two_Numbers
- 002 Add Two Numbers [Leetcode]
- LeetCode 002 AddTwoNumbers
- leetcode解题方案--002--AddTwoNumbers
- leetcode刷题: 002 Add Two Numbers