Day6-(链表表示)两个数相加
2016-12-24 23:41
169 查看
题目
(链表表示)两个数相加给定了表示非负数的两个链表。数字都是以逆序存储的,并且每个节点都包含一个单个的数字。将两个数相加,并且以一个链表的形式返回结果:
输入:(2->4->3) + (5->6->4)
输出:7->0->8
本题和上一题是一样的,区别在于上一题是基于数组的,而本题是基于链表的。把数组操作运算改成链表操作运算就可以了。
代码
ListNode *addTwoNumbers(ListNode *l1, ListNode *l2){ ListNode* result = new ListNode(-1); ListNode* pre = result; ListNode *pa = l1, *pb = l2; int carry = 0; while(pa != NULL || pb != NULL) { int av = pa==NULL ? 0 : pa->val; int bv = pb==NULL ? 0 : pb->val; ListNode* node = new ListNode((av+bv+carry)%10); carry = (av+bv+carry) / 10; //pre控制插入节点的位置 pre->next = node; pre = pre->next;//尾插节点 //pa pb 控制循环的进行。 pa = pa==NULL ? NULL : pa->next; pb = pb==NULL ? NULL : pb->next; } if(carry > 0) pre->next = new ListNode(1); pre = result->next; delete result; return pre; }
看到一篇博客中的一句话,觉得很认同: 成长没有捷径可走。需要的是一个一个坚实的突破。
是这样子的,只有脚踏实地一步一步的去做,持之以恒,不断学习,才能够达到某个技术的“精通”,学习中从来没有捷径,靠的便是不断坚持的努力,加油吧!
相关文章推荐
- 用链表表示的两个数相加
- 算法练习2.Add Two Numbers 反向小数链表表示相加
- 单链表表示的两个数相加
- 用链表实现两个数相加
- 一元多项式的表示及相加 【链表的应用】
- 用单链表表示一元多项式及相加相减相乘运算
- [C++]练习使用链表逆序存储的两个数相加
- Leetcode Add Two Numbers 两个链表表示的数相加
- 算法:一元多项式的表示及相加(链表实现)-数据结构(4)
- [C++]练习使用链表逆序存储的两个数相加
- 借助链表实现两个数的相加
- 链表实现两个数相加
- Leet Code 2 Add Two Numbers - 链表表示的两个数求和 - Java
- 重温数据结构:链表的应用之多项式的表示及相加和相乘
- 链表表示的数字相加
- [LeetCode]2. Add Two Numbers用链表逆序存储的两个数相加
- 链表表示的 一元多项式,无参构造器,有参构造器,相加,遍历
- 【LeetCode-面试算法经典-Java实现】【002-Add Two Numbers (单链表表示的两个数相加)】
- Add Two Numbers 把两个以链表形式表示的数相加 @LeetCode
- 将两个数(链表形式)相加,数字是反序存储的