LintCode【简单】167. 链表求和 。代码及思路
2018-01-24 18:08
459 查看
自从前天做这道题做到半夜,直到今天上午我都没有碰它……
适当的放弃不是失败,而是为了更好的开始。
题目要求
你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中
您在真实的面试中是否遇到过这个题?
Yes
样例
给出两个链表
思路
一开始我以为这不就是一个简单的加法进位嘛……但是后来用指针还出了错误
Segmentation fault(core dumped)
我是因为增加下一位的时候没有判断next的指针是否是空,还是要慎重用指针啊!
还有一个感想就是,一定要确保自己思路清晰的情况下再提交代码,不然像我一样稀里糊涂就提交40多遍的话拉低平均提交次数心疼啊QAQ
下面是代码,自我感觉还比较简洁……
适当的放弃不是失败,而是为了更好的开始。
题目要求
你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中
相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。
您在真实的面试中是否遇到过这个题?
Yes
样例
给出两个链表
3->1->5->null和
5->9->2->null,返回
8->0->8->null
思路
一开始我以为这不就是一个简单的加法进位嘛……但是后来用指针还出了错误
Segmentation fault(core dumped)
我是因为增加下一位的时候没有判断next的指针是否是空,还是要慎重用指针啊!
还有一个感想就是,一定要确保自己思路清晰的情况下再提交代码,不然像我一样稀里糊涂就提交40多遍的话拉低平均提交次数心疼啊QAQ
下面是代码,自我感觉还比较简洁……
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 ListNode *p = l1; ListNode *p1 = l1; ListNode *q = l2; while(p != NULL){ if(q != NULL){ if(p->val + q->val >= 10){ p->val = (p->val + q->val) % 10; if(p->next != NULL){ p->next->val++; } else{ p->next = new ListNode; p->next->val = 1; } } else{ p->val += q->val; } } else{ //q结束的时候判断一下p是不是>=10 if(p->val >= 10){ p->val = p->val % 10; if(p->next != NULL){ p->next->val++; } else{ p->next = new ListNode; p->next->val = 1; } } break; } q = q->next; p1 = p; p = p->next; } if(q != NULL){ p1->next = q; } return l1; } };
相关文章推荐
- LintCode【简单】35. 翻转链表 。代码及思路
- LintCode【简单】96. 链表划分。代码及思路
- LintCode【简单】28. 搜索二维矩阵 。代码及思路
- LintCode【简单】100. 删除排序数组中的重复数字。代码及思路
- LintCode【简单】53. 翻转字符串 。代码及思路
- LintCode【简单】60. 搜索插入位置 。代码及思路
- LintCode【简单】44. 最小子数组 。代码及思路
- LintCode【简单】22. 平面列表 。代码及思路
- 167. 链表求和(add-two-numbers)(c++)----lintcode面试题之链表
- LintCode【简单】80. 中位数。代码及思路
- LintCode【简单】8. 旋转字符串 。代码及思路
- LintCode【简单】13. 字符串查找 。代码及思路
- LintCode【简单】50. 数组剔除元素后的乘积 。代码及思路
- LintCode【简单】69. 二叉树的层次遍历。代码及思路
- LintCode【简单】82. 落单的数。代码及思路
- LintCode【简单】41. 最大子数组 。代码及思路
- LintCode【简单】64. 合并排序数组。代码及思路
- LintCode【简单】6. 合并排序数组 II,9. Fizz Buzz 问题。代码及思路 ——【vector用法】
- LintCode【简单】97. 二叉树的最大深度 。代码及思路
- LintCode【简单】14. 二分查找 。代码及思路