/**
* 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) {
if (l1 == NULL) return l2;
if (l2 == NULL) return l1;
ListNode* ret = l1;
ListNode* pre = new ListNode(0);
ListNode* ret1 = pre;
int add = 0;
while (l1 != NULL || l2 != NULL) {
int val1,val2;
val1 = val2 = 0;
if(l1 != NULL){
val1 = l1->val;
l1 = l1->next;
}
if(l2 != NULL){
val2 = l2->val;
l2 = l2->next;
}
int sum = val1 + val2 + add;
add = sum/10;
pre->next = new ListNode(sum%10);
pre = pre->next;
}
if(add==1){
pre->next = new ListNode(1);
}
return ret1->next;
}
} ;
模拟加法
LeetCode 2. Add Two Numbers 题解
最新推荐文章于 2024-07-25 11:23:22 发布