两个链表求和函数c语言 两个链表的合并算法( 三 )


DATAS *datasNew=(DATAS *)malloc(sizeof(DATAS));
scanf("%d",(datasNew-num));
datasNew-next=NULL;
if(datasHead-next==NULL)
datasHead-next=datasNew;
else
datasTail-next=datasNew;
datasTail=datasNew;
}
return datasHead;
}
DATAS *addData(DATAS *datasHead1,DATAS *datasHead2)
{
DATAS *datasHead=(DATAS *)malloc(sizeof(DATAS));
DATAS *datasTail=NULL;
datasHead-next=NULL;
while(datasHead1-next!=NULLdatasHead2-next!=NULL)
{
DATAS *datasNew=(DATAS *)malloc(sizeof(DATAS));
datasNew-next=NULL;
datasNew-num=datasHead1-next-num+datasHead2-next-num;
if(datasHead-next==NULL)
datasHead-next=datasNew;
else
datasTail-next=datasNew;
datasTail=datasNew;
datasHead1=datasHead1-next;
datasHead2=datasHead2-next;
}
return datasHead;
}
【leetcode C语言实现】面试题 02.05-链表求和给定两个用链表表示的整数 , 每个节点包含一个数位 。
这些数位是反向存放的,也就是个位排在链表首部 。
编写函数对这两个整数求和,并用链表形式返回结果 。
示例:
输入:(7 - 1 - 6) + (5 - 9 - 2),即617 + 295
输出:2 - 1 - 9,即912
进阶:假设这些数位是正向存放的,请再做一遍 。
示例:
输入:(6 - 1 - 7) + (2 - 9 - 5),即617 + 295
输出:9 - 1 - 2,即912
当两个整数相加时,从个位开始,依次将两个数的对应位置进行相加 , 将所得结果的个位数作为相加后对应位置的结果,若有进位将进位的值在更高一位进行相加 。此处两个数是以链表存储,同样的思路,依次将两个数的对应位置进行相加,并将所得结果保存到一个链表中 。
运行结果:
【两个链表求和函数c语言 两个链表的合并算法】两个链表求和函数c语言的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于两个链表的合并算法、两个链表求和函数c语言的信息别忘了在本站进行查找喔 。

推荐阅读