[LeetCode] Add Two Numbers

ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) {
	ListNode* sum = new ListNode(0);
	ListNode* pre = sum;
	if(l1 != NULL)
	{
		pre->val += l1->val;
		l1 = l1->next;
	}
	if(l2 != NULL)
	{
		pre->val += l2->val;
		l2 = l2->next;
	}
	int carry = 0;
	carry = pre->val/10;
	pre->val %= 10;
	while(l1 != NULL || l2 != NULL || carry != 0)
	{
		ListNode* cur = new ListNode(0);
		pre->next = cur;

		if(l1 != NULL)
		{
			cur->val += l1->val;
			l1 = l1->next;
		}
		if(l2 != NULL)
		{
			cur->val += l2->val;
			l2 = l2->next;
		}
		cur->val += carry;
		carry = cur->val/10;
		cur->val %= 10;
		pre = cur;
	}
	return sum;
}

你可能感兴趣的:([LeetCode] Add Two Numbers)