标签:表示 linked problem node ems block 除了 amp ret
给出两个?非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照?逆序?的方式存储的,并且它们的每个节点只能存储?一位?数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0?开头。
初等数学
没啥特别,就是初等数学的加法。
只不过需要考虑一下三种情况:
/**
* 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) {
ListNode *n1=l1,*n2=l2,*m1,*m2;
while(n1!=NULL&&n2!=NULL)
{
m1=n1;
m2=n2;
n1->val= n1->val+n2->val;
if(n1->val>9)
{
n1->val=n1->val % 10;
if(n1->next==NULL)
{
n1->next=new ListNode(1);
}
else
{
n1->next->val++;
}
}
n1=n1->next;
n2=n2->next;
}
if(n1==NULL)
{
m1->next=m2->next;
}
while(m1!=NULL)
{
if(m1->val>9)
{
m1->val=m1->val % 10;
if(m1->next==NULL)
{
m1->next=new ListNode(1);
}
else
{
m1->next->val++;
}
}
m1=m1->next;
}
return l1;
}
};
标签:表示 linked problem node ems block 除了 amp ret
原文地址:https://www.cnblogs.com/AAAHQZ/p/12116838.html