admin 管理员组文章数量: 887007
leetcode两数相加(最简单思路)
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
int size1 = 1;
int size2 = 1;
int type = 0;//进位值
ListNode*temp1 = l1;
ListNode*temp2 = l2;
while(temp1->next !=nullptr)
{
size1++;
temp1 = temp1->next;
}
while(temp2->next !=nullptr)
{
size2++;
temp2 = temp2->next;
}
ListNode*ptr1 = l1;
ListNode*ptr2 = l2;
if(size1>=size2)
{
for(int i =0;i<size1;i++)
{
int x;
if(i<size2)
x = ptr1->val+ptr2->val+type;
else
x = ptr1->val+type;
if(x>=10)
{
ptr1->val = x-10;
type = 1;
}
else
{
ptr1->val = x;
type = 0;
}
ptr1 = ptr1->next;
if(i<size2)
ptr2 = ptr2->next;
}
if(type == 1)
{
ListNode * ptr = new ListNode;
ptr->val = 1;
ListNode * temp = l1;
for(int i=1;i<size1;i++)
temp = temp->next;
ptr->next=temp->next;
temp->next = ptr;
}
return l1;
}
else
{
for(int i =0;i<size2;i++)
{
int x;
if(i<size1)
x = ptr1->val+ptr2->val+type;
else
x = ptr2->val+type;
if(x>=10)
{
ptr2->val = x-10;
type = 1;
}
else
{
ptr2->val = x;
type = 0;
}
ptr2 = ptr2->next;
if(i<size1)
ptr1 = ptr1->next;
}
if(type == 1)
{
ListNode * ptr = new ListNode;
ptr->val = 1;
ListNode * temp = l2;
for(int i=1;i<size2;i++)
temp = temp->next;
ptr->next=temp->next;
temp->next = ptr;
}
return l2;
}
return l1;
}
};
本文标签: leetcode两数相加(最简单思路)
版权声明:本文标题:leetcode两数相加(最简单思路) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1732362348h1535571.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论