lintcode-【简单题】链表求和
2016-02-26 09:48
483 查看
题目:
你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中
样例:
给出两个链表
答案:
从头到尾按链表顺序遍历相加就行啦,如果加到最后,进位不为0,还需要另外添加一个节点。
代码:
View Code
你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中
相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。
样例:
给出两个链表
3->1->5->null和
5->9->2->null,返回
8->0->8->null
答案:
从头到尾按链表顺序遍历相加就行啦,如果加到最后,进位不为0,还需要另外添加一个节点。
代码:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: /** * @param l1: the first list * @param l2: the second list * @return: the sum list of l1 and l2 */ ListNode *addLists(ListNode *l1, ListNode *l2) { // write your code here int carry = 0,value = 0; ListNode *l1Iter = l1; ListNode *l2Iter = l2; ListNode *ansRoot = NULL,*ansIter = NULL; while(l1Iter != NULL && l2Iter != NULL) { value = l1Iter->val + l2Iter->val + carry; carry = value / 10; value = value % 10; ListNode *node = new ListNode(value); if(ansRoot == NULL) { ansRoot = node; } if(ansIter != NULL) { ansIter->next = node; } ansIter = node; l1Iter = l1Iter->next; l2Iter = l2Iter->next; } while(l1Iter != NULL) { value = l1Iter->val + carry; carry = value / 10; value = value % 10; ListNode *node = new ListNode(value); if(ansRoot == NULL) { ansRoot = node; } if(ansIter != NULL) { ansIter->next = node; } ansIter = node; l1Iter = l1Iter->next; } while(l2Iter != NULL) { value = l2Iter->val + carry; carry = value / 10; value = value % 10; ListNode *node = new ListNode(value); if(ansRoot == NULL) { ansRoot = node; } if(ansIter != NULL) { ansIter->next = node; } ansIter = node; l2Iter = l2Iter->next; } if(carry != 0) { ListNode *node = new ListNode(carry); if(ansIter != NULL) { ansIter->next = node; } } return ansRoot; } };
View Code
相关文章推荐
- 文科妹子告诉你怎样使用 GitHub!
- MongoDB查询性能优化验证及验证
- 1055. The World's Richest (25)
- easyui datagrid 删除行问题
- 19个免费的UI界面设计工具及资源
- 数据库远程连接
- 赛平斯基垫片
- Yii安装
- 用python访问URL
- Ios录音功能
- ioS开发知识(二十)
- 我们需要专职的QA吗?
- 像iOS的UINavigationController、知乎的Android版那样可以对Activity进行滑动返回操作
- ORACLE 将number型的秒/毫秒值转成date类型
- 数据库死锁
- ioS开发知识(十九)
- ORACLE 将number型的秒/毫秒值转成date类型
- 21个免费的UI界面设计工具、资源及网站
- 三层总结
- 使用xib作为应用入口