LeetCode解题报告 445. Add Two Numbers II [medium]
来源:互联网 发布:达内java就业 编辑:程序博客网 时间:2024/05/29 18:13
题目描述
You are given two linked lists representing two non-negative numbers. The most significant digit comes first and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
You may assume the two numbers do not contain any leading zero, except the number 0 itself.
Follow up:
What if you cannot modify the input lists? In other words, reversing the lists is not allowed.
Example:
Input: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)Output: 7 -> 8 -> 0 -> 7
解题思路
本题的意思就是两个链表的节点从右往左两两相加,主要需要考虑进位。
题中说明不能转置原链表,因此考虑新开两个vector来存储两个链表的节点值,而后将对应同一位置的节点值想加。再new 两个ListNode,一个存储相加后的结果的节点值,另一个表示结果节点的next。
注意要用一个变量来存储进位的值,因为最后的结果有可能会比两个链表的长度更大。
复杂度分析
时间复杂度为O(N),空间复杂度为O(N)。
代码如下:
class Solution {public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { vector<int>mylist1; vector<int>mylist2; while (l1) { mylist1.push_back(l1->val); l1=l1->next; } while (l2) { mylist2.push_back(l2->val); l2=l2->next; } int n1=mylist1.size(); int n2=mylist2.size(); int jinwei=0; int sum=0; ListNode* head=nullptr; ListNode* p=nullptr; for (int i=n1-1,j=n2-1; i>=0||j>=0||jinwei>0; i--,j--) { sum=jinwei; if (i>=0) { sum+=mylist1[i]; } if (j>=0) { sum+=mylist2[j]; } jinwei=sum/10; p = new ListNode(sum%10); p->next=head; head=p; } return head; }};
0 0
- LeetCode解题报告 445. Add Two Numbers II [medium]
- [Leetcode] 445. Add Two Numbers II 解题报告
- Leetcode 445. Add Two Numbers II (Medium) (cpp)
- 【LeetCode】Add Two Numbers 解题报告
- LeetCode-Add Two Numbers-解题报告
- Leetcode (2) Add Two Numbers 解题报告
- LeetCode 2. Add Two Numbers 解题报告
- [leetcode] 2. Add Two Numbers 解题报告
- LeetCode 2. Add Two Numbers 解题报告
- [LeetCode] Add Two Numbers 解题报告
- 【LeetCode】2. Add Two Numbers 解题报告
- [Leetcode] 2. Add Two Numbers 解题报告
- LeetCode 2. Add Two Numbers 解题报告
- leetcode解题报告2. Add Two Numbers
- [LeetCode 解题报告]002.Add Two Numbers
- LeetCode(2) Add Two Numbers解题报告
- Leetcode Add Two Numbers解题报告
- Leetcode解题笔记 2.Add Two Numbers [Medium]
- Java KMP匹配算法的实现
- 我的世界 unity3d minecraft 用unity3d来制作类似我的世界的游戏 优化树和草
- 50. Pow(x, n)
- leetcode oj java Search a 2D Matrix
- 05-JS特效-缓动动画
- LeetCode解题报告 445. Add Two Numbers II [medium]
- 数据结构 指针知识
- Objective-C中的@property
- H5项目常见问题及注意事项[连载中]
- SP存储
- 强大而流行的C语言
- java.class.getClassLoader 容易理解的方式
- 关于activity的使用规范小总结
- 2016-java基础篇-servlet-cookies