Leetcode002
Add Two Numbers问题
知识更新:链表结构
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
int carry = 0;
int sum = 0;
ListNode* res = new ListNode(-1);
ListNode* cur = res;
ListNode* pl1 = l1;
ListNode* pl2 = l2;
while (1)
{
if (pl1&&pl2)
{
sum = pl1->val + pl2->val + carry;
cur->next = new ListNode(sum % 10);
carry = sum / 10;
cur = cur->next;
pl1 = pl1->next;
pl2 = pl2->next;
continue;
}
if (pl1)
{
sum = pl1->val + carry;
cur->next = new ListNode(sum % 10);
carry = sum / 10;
cur = cur->next;
pl1 = pl1->next;
continue;
}
if (pl2)
{
sum = pl2->val + carry;
cur->next = new ListNode(sum % 10);
carry = sum / 10;
cur = cur->next;
pl2 = pl2->next;
continue;
}
if (carry)
cur->next = new ListNode(carry);
break;
}
ListNode* temp = res->next;
delete res;
return temp;
}
注意问题:链表首位置以及新节点创建