Leetcode解题笔记 2.Add Two Numbers [Medium]
来源:互联网 发布:公安网络攻防测试 编辑:程序博客网 时间:2024/05/18 00:16
解题思路
其实题目没有提到几个坑,题目没提到边界的问题,就是两条链的长度可能不相同,没有数据的话也可以通过前面两个数相加得到的进位创建一个新的节点,本来代码写得很乱很复杂,后来利用? :
重构了代码,使得代码更加容易明白。
代码
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode* iter1 = l1; ListNode* iter2 = l2; ListNode *temp = NULL, *result = NULL; int v1, v2; int carryBit = 0; int tempVal = 0; while (iter1 != NULL || iter2 != NULL) { v1 = iter1 ? iter1->val : 0; v2 = iter2 ? iter2->val : 0; int sum = v1 + v2 + carryBit; tempVal = sum % 10; carryBit = sum / 10; // 判断是否是第一个数据 if (result == NULL) { result = temp = new ListNode(tempVal); } else { temp->next = new ListNode(tempVal); temp = temp->next; } iter1 = iter1 ? iter1->next : iter1; iter2 = iter2 ? iter2->next : iter2; } //最后一个是否存在进位判断 if (carryBit != 0) { temp->next = new ListNode(carryBit); } return result;}
时间复杂度
O(n) :只是简单遍历了两条链路,所以不存在什么复杂度问题。
阅读全文
0 0
- Leetcode解题笔记 2.Add Two Numbers [Medium]
- Leetcode 2. Add Two Numbers (Medium) (cpp)
- 【leetcode】2. Add Two Numbers 【medium】
- LeetCode 2. Add Two Numbers[Medium]
- 【leetcode medium】2. Add Two Numbers
- LeetCode解题报告 445. Add Two Numbers II [medium]
- LeetCode 2. Add Two Numbers 解题报告
- [leetcode] 2. Add Two Numbers 解题报告
- LeetCode 2. Add Two Numbers 解题报告
- LeetCode: 2. Add Two Numbers 【C 解题】
- 【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
- 2. Add Two Numbers Medium
- [leetcode解题]Add Two Numbers
- 题解——Leetcode 2. Add Two Numbers 难度:Medium
- 有史以来在表格下方新增空行最快捷的方法(没有之一)
- Appach_Tomcat整合架设
- C++读写HDFS代码
- oracle创建数据库以及用户表空间
- poj 3254 Corn Fields(状压)
- Leetcode解题笔记 2.Add Two Numbers [Medium]
- 淘宝客运营推广技巧方法有哪些?
- 浅析python 中__name__ = '__main__' 的作用
- iOS 11 GM 披露更多有关新 iPhone Face ID、无线充电的消息
- 欢迎使用CSDN-markdown编辑器
- MVC模式和MVP模式
- springboot-cloud-7-eureka-source
- Hadoop之MapReduce调度:通过Python进行多日期多链接地址的串行跑批统计
- Map<String,Object>转为JSONObject ,JSONObject 转为JsonObject,JsonObject转为JsonElement