167链表求和
2017-07-10 22:02
302 查看
题目描述:你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。
样例给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null
注意点:如果两个数相加结束之后,进位不为零,此时表示,结果值比原来的链表要更长一位。此时需要单独处理,增加一个节点。Wrong Answer
总耗时: 241 ms49% 数据通过测
4000
试.
输入
1->1->1->1->1->null
9->8->8->8->8->null
输出
0->0->0->0->0->0->null
期望答案
0->0->0->0->0->1->null
/** * 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) { if(l1==NULL) { return l2; } if(l2==NULL) { return l1; } int jw=0; int temp=0; ListNode*dummy=new ListNode(0); ListNode*p=dummy; while(l1!=NULL&&l2!=NULL) { temp=l1->val+l2->val+jw; jw=temp/10; temp=temp; p->next=new ListNode(temp); p=p->next; l1=l1->next; l2=l2->next; } while(l1!=NULL) { temp=l1->val+jw; jw=temp/10; temp=temp; p->next=new ListNode(temp); p=p->next; l1=l1->next; } while(l2!=NULL) { temp=l2->val+jw; jw=temp/10; temp=temp; p->next=new ListNode(temp); p=p->next; l2=l2->next; } if(jw!=0) { p->next=new ListNode(jw); } return dummy->next; // write your code here } };
相关文章推荐
- 167. 链表求和
- lintcode,167,链表求和
- LintCode之167 链表求和
- 容易_167_链表求和(3)
- 【LintCode-167】链表求和(Java实现)
- lintcode 167 链表求和
- Linkcode 167 链表求和
- python_lintcode_167链表求和
- 167 - 链表求和
- lintcode-167-链表求和
- [Lintcode] #167 链表求和
- LintCode_167_链表求和
- LintCode_167_链表求和
- 链表求和
- 算法训练 9-7链表数据求和操作
- 链表求和
- 数字求和——链表
- LintCode-[中等] 221. 链表求和 II
- 作业11.167:链表求和
- 数据结构【线性表(二)链表】项目之多项式求和