题意:给两个链表,表示两个正整数,求两个正整数相加后的值。
题解:直接模拟。
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode *head = new ListNode(0);
ListNode *ans = head;
int carry = 0;
while(l1 || l2)
{
int num1 = l1 ? l1->val : 0;
int num2 = l2 ? l2->val : 0;
int sum = num1 + num2 + carry;
carry = 0;
if(sum >= 10)
{
carry = sum / 10;
sum %= 10;
}
ListNode* temp = new ListNode(sum);
head->next = temp;
head = head->next;
if(l1) l1 = l1->next;
if(l2) l2 = l2->next;
}
if(carry)
{
ListNode* temp = new ListNode(carry);
head->next = temp;
}
return ans->next;
}
};