[LeetCode 解题报告]002.Add Two Numbers
来源:互联网 发布:怎样从淘宝上买东西 编辑:程序博客网 时间:2024/05/16 03:27
Description:
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order 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.
Examples:
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
算法思想:类似于大数加法,若当前和大于10,则产生进位。一直遍历到L1和L2尾部。注意:L1和L2的长度可能不一样长。最后也可能产生进位。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode* res= new ListNode(0); ListNode* p = res; if(l1 == NULL || l2 == NULL) return NULL; int c = 0; while(l1 != NULL && l2 != NULL) { p->next = new ListNode((c + l1->val + l2->val) %10); c = (c + l1->val + l2->val) / 10; p = p->next; l1 = l1->next; l2 = l2->next; } while(l1 != NULL) { p->next = new ListNode((c + l1->val) % 10); c = (c + l1->val) / 10; p = p->next; l1 = l1->next; } while(l2 != NULL) { p->next = new ListNode((c + l2->val) % 10); c = (c + l2->val) / 10; p = p->next; l2 = l2->next; } if(c) p->next = new ListNode(c); return res->next; }};
时间复杂度:O(max(m, n)),空间复杂度O(max(m, n) + 1)
阅读全文
0 0
- [LeetCode 解题报告]002.Add Two Numbers
- 【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(2) Add Two Numbers解题报告
- Leetcode Add Two Numbers解题报告
- LeetCode OJ 第2题 Add Two Numbers 解题报告
- LeetCode解题报告 445. Add Two Numbers II [medium]
- [leetcode]2. Add Two Numbers@Java解题报告
- [Leetcode] 445. Add Two Numbers II 解题报告
- C++随机数生成器mt19937生成随机数的用法
- java实现遍历树形菜单方法——HibernateUtil实现
- 1154: 逆反的01串
- html中的banner自适应屏幕代码
- 面向对象
- [LeetCode 解题报告]002.Add Two Numbers
- _stdcall,_cdecl区别
- 一般产品配置文件包含关系
- c++打印不同方向的三角形
- postfix邮件服务:限制用户发送、接收;出站地址伪装、入站地址转换
- java实现遍历树形菜单方法——TreeAction实现
- POJ 1337 A Lazy Worker 笔记
- 高级网络配置之网桥与ipv6
- 数据库——(6)