题意:用两个list表示两个非负整数,求它们的和
思路:从最低位起,对应位的两个数字相加,再加上上一位的进位。
代码:
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
int t=l1->val+l2->val;
ListNode* sum_head=new ListNode(t%10);
ListNode* sum_p=sum_head;
l1=l1->next;
l2=l2->next;
while(l1||l2)
{
t=t/10;
if(l1!=NULL)
{
t+=l1->val;
l1=l1->next;
}
if(l2!=NULL)
{
t+=l2->val;
l2=l2->next;
}
sum_p->next=new ListNode(t%10);
sum_p=sum_p->next;
}
if(t>=10)
{
sum_p->next=new ListNode(t/10);
}
return sum_head;
}
};