leetcode 第二题

leetcode中第二题I
nput: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
个人代码如下不知道哪里出现了问题:
struct ListNode* addTwoNumbers(struct ListNode* l1,struct ListNode* l2)
{
struct ListNode* p1=l1;
struct ListNode* p2=l2;
struct ListNode* result=()malloc(sizeof(struct ListNode));
result->val =0;
struct ListNode* p=NULL;
int c=0;
while(p1!=NULL || p2!=NULL || c!=0)
{
if(p=NULL)
{
result=p;
}
else
{
p->next=(struct ListNode*)malloc(sizeof(struct ListNode));
p=p->next;
p->next->val=0;
}

int a=(p1==NULL ? 0: p1->next);
int b=(p2==NULL ? 0: p2->next);
int s=(a+b+c)%10;
c=(a+b+c)/10;

p1=(p1==NULL ? 0 : p1->next);
p2=(p2==NULL ? 0 : p2->next);
}

}

全部评论
就是个大数相加哇,维护一个变量来求和,然后每次变量%10,求余的值就给新的节点哇,另外处理下溢出!处理溢出是关键的地方。
点赞 回复
分享
发布于 2018-01-15 22:01
长度不一定只有3个
点赞 回复
分享
发布于 2018-01-17 02:39
小红书
校招火热招聘中
官网直投

相关推荐

点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务