您的位置:首页 > 其它

LeetCode 2 Add Two Numbers

2016-02-16 08:17 323 查看
题目连接:

https://leetcode.com/problems/add-two-numbers/

题目大意:

就是链表表示的两个数进行加法

大致思路:

首先注意进位的问题,然后就是链表的长度不一样的问题,两个长度分别为x, y的数相加,最多能得到的数长度是max(x, y) + 1

写的时候注意一下就好了

代码如下:

Result  :  Accepted     Time  :  36 ms

/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode *ret = new ListNode(-1);
ListNode* ans = ret;
int last = 0;
do{
if(l1 != NULL) last += l1->val, l1 = l1->next;
if(l2 != NULL) last += l2->val, l2 = l2->next;
ret->val = last % 10;
last = last / 10;
if(l1 != NULL || l2 != NULL || last == 1){
ret->next = new ListNode(-1);
ret = ret->next;
}
}while(l1 != NULL || l2 != NULL || last == 1);
return ans;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode Add Two Numbers 2