leetcode解题报告2. Add Two Numbers
来源:互联网 发布:全国网络统考系统 编辑:程序博客网 时间:2024/05/18 00:01
leetcode解题报告2. Add Two Numbers
题目地址
难度是medium
题目描述
用单链表来表示一个大整数,其中单链表的每个节点只有一个数0~9。给两个这样单链表表示的整数,求它们的和(还是用单链表表示)
我的思路
题目比较难看懂,刚开始还以为只是把单链表对应节点相加而已,没想到是把单链表看着一个整数相加,这样的话,要考虑进位了。
理解题目之后就不难了,难点在于
1. 单链表的操作(考验数据结构知识)
2. 各种情况的考虑,比如两个列表的长度不一样,再比如,在最后一位相加后,还有进位等情况。
我的代码
/** * 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* head = new ListNode(0); ListNode* cur = head; short flag = 0; //进位标示 //注意可能l1和l2的长度不一定一样 while (l1 != NULL || l2 != NULL) { int lv1, lv2; if (l1 == NULL) { lv1 = 0; } else { lv1 = l1->val; l1 = l1->next; } if (l2 == NULL) { lv2 = 0; } else { lv2 = l2->val; l2 = l2->next; } short v = lv1 + lv2 + flag; //优化点,因为数字范围是0到9,用short就好 flag = v / 10; v = v % 10; cur->next = new ListNode(v); cur = cur->next; } //处理最后一位相加之后的进位 if (flag > 0) { cur->next = new ListNode(flag); } return head->next; }};
阅读官方题解
官方题解
基本和我想的差不多。
思想核心总结
看懂题目要求,不要理解错了
注意各种特殊情况
熟练链表的操作
0 0
- 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 2. Add Two Numbers 解题报告
- leetcode解题报告2. Add Two Numbers
- 【LeetCode】Add Two Numbers 解题报告
- LeetCode-Add Two Numbers-解题报告
- Leetcode (2) Add Two Numbers 解题报告
- [LeetCode] Add Two Numbers 解题报告
- [LeetCode 解题报告]002.Add Two Numbers
- LeetCode(2) Add Two Numbers解题报告
- Leetcode Add Two Numbers解题报告
- [leetcode]2. Add Two Numbers@Java解题报告
- LeetCode: 2. Add Two Numbers 【C 解题】
- 【Leetcode】2.Add Two Numbers 解题
- LeetCode OJ 第2题 Add Two Numbers 解题报告
- PAT甲级练习1048. Find Coins (25)
- 装饰设计模式简析
- C/C++知识回顾 容器
- 2017年02月25,周结(一),初识android...
- 每日170225-26
- leetcode解题报告2. Add Two Numbers
- C++头文件(.h)中常包含的内容
- java并发(一)线程安全概念
- 【ITOO项目中遇到的问题】——为 MT_HOTEL_SERVICE 添加持久化单元服务失败
- 快速排序详解及JAVA/C++实现
- 多进程同步,信号量、管程
- Fragment的信息传递
- FLV学习(六)FlvParser源码阅读(4)解析标签头部
- 青蛙的约会