算法2.5:链式A+B
来源:互联网 发布:linux递归创建目录 编辑:程序博客网 时间:2024/06/05 08:27
题目描述
有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。
给定两个链表ListNode* A,ListNode* B,请返回A+B的结果(ListNode*)。
测试样例:
{1,2,3},{3,2,1}
返回:{4,4,4}
思路分析:因为链表中第一个是个位,以此类推,当两个链表需要考虑:当个位相加时,会进位;当一个链表比另一个短时,直接将另一个加到末尾;两个相同长度时,最后一位加完,若有进位则还要加上1。
题目答案:
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {}};*/class Plus {public: ListNode* plusAB(ListNode* a, ListNode* b) { // write code here int sum=0,ca=0; ListNode* c; c=(ListNode *)malloc(sizeof(ListNode)); ListNode* p=c; while(a!=NULL||b!=NULL||ca!=0) { int at=a?a->val:0; int bt=b?b->val:0; sum=at+bt+ca; //if(sum==0) break; ca=sum/10; sum=sum%10; ListNode *temp=(ListNode *)malloc(sizeof(ListNode)); temp->val=sum; p->next=temp; p=p->next; a=a?a->next:NULL; b=b?b->next:NULL; } // p->next=NULL; return c->next; }};
0 0
- 算法2.5:链式A+B
- 链式A+B
- 链式A+B
- 牛客网 | 链式A+B
- 链式A+B
- 链式A+B
- 链式A+B
- 链式A+B
- 程序员面试金典 2.5 链式A+B
- 2.Add Two Numbers&链式A+B
- 《程序员面试金典》链式A+B
- 链式A+B之程序员面试经典
- 链式A+B(解题报告)
- [程序员面试金典]-链式A+B
- 【高精度算法】A*B
- 【高精度算法】A+B
- 【高精度算法】A+B
- 算法学习 -- a+b
- 子类无参构造调用父类有参构造方法
- swift学习笔记--swift3.0 if-let、guard语句中的where的替换
- 【BZOJ 1833】【数位DP】 ZJOI2010 count【求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次】
- 多线程断点续传(代码,附有详细注解)
- mysql 5.7插入中文乱码,mysql 5.7 修改my.ini文件无效解决方法
- 算法2.5:链式A+B
- C++ 作用域运算符(::)
- C++模板-实现栈(进制转换)
- Android 播放视频 VideoView 《第一行代码》学习笔记
- php缓存-内存式-mamcache-封装
- 【2016-沈阳赛区网络赛-I】区间DP(QSC and Master,hdu 5900)
- UVa 12169 Disgruntled Judge
- Eclipse中JSP文件中文乱码解决
- 利用sort对多字段排序