002. Add Two Numbers
题目链接:https://leetcode.com/problems/add-two-numbers/description/
Example:
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
Explanation: 342 + 465 = 807.
思路:
- 用两个结点指针p1、p2分别指向这两个链表L1、L2。
- 当p1、p2两者指向非空时将p1、p2所指向结点的值val和进位数carNum相加。即sum = p1->val + p2->val + carNum; 其中进位数carNum初始值为0。
- 更新进位数的值:carNum = sum / 10;
- 获得当前位的值:cur = sum % 10;
- 当p1 或 p2 两者指向至少有一个为空时,上一步的操作终止。对非空的链表继续进行后续操作。
编码如下:
/**
* 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 *p1 = l1;
ListNode *p2 = l2; ListNode *pHead = new ListNode(-);
ListNode *p = nullptr; int carNum = ; // 进位数 while (nullptr != p1 && nullptr != p2)
{
int sum = p1->val + p2->val + carNum;
carNum = sum / ; // 求进位数
int cur = sum % ; // 当前位的数字 ListNode *pTemp = new ListNode(cur); if (p == nullptr)
{
p = pTemp;
pHead->next = p;
}
else
{
p->next = pTemp;
p = pTemp;
} p1 = p1->next;
p2 = p2->next;
} while (nullptr != p1)
{
int sum = p1->val + carNum;
carNum = sum / ;
int cur = sum % ; ListNode *pTemp = new ListNode(cur); if (p != nullptr)
{
p->next = pTemp;
p = pTemp;
} p1 = p1->next;
} while (nullptr != p2)
{
int sum = p2->val + carNum;
carNum = sum / ;
int cur = sum % ; ListNode *pTemp = new ListNode(cur); if (p != nullptr)
{
p->next = pTemp;
p = pTemp;
} p2 = p2->next;
} if (carNum != )
{
ListNode *pTemp = new ListNode(carNum);
if (p != nullptr)
{
p->next = pTemp;
p = pTemp;
}
} return pHead->next; }
};
002. Add Two Numbers的更多相关文章
- No.002 Add Two Numbers
Add Two Numbers Total Accepted: 160702 Total Submissions: 664770 Difficulty: Medium You are given tw ...
- LeetCode #002# Add Two Numbers(js描述)
索引 思路1:基本加法规则 思路2:移花接木法... 问题描述:https://leetcode.com/problems/add-two-numbers/ 思路1:基本加法规则 根据小学学的基本加法 ...
- LeetCode--No.002 Add Two Numbers
Add Two Numbers Total Accepted: 160702 Total Submissions: 664770 Difficulty: Medium You are given tw ...
- leetcode刷题: 002 Add Two Numbers
You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...
- 【JAVA、C++】LeetCode 002 Add Two Numbers
You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...
- 【LeetCode】002 Add Two Numbers
题目: You are given two non-empty linked lists representing two non-negative integers. The digits are ...
- 002 Add Two Numbers 链表上的两数相加
You are given two non-empty linked lists representing two non-negative integers. The digits are stor ...
- [Leetcode] 002. Add Two Numbers
https://leetcode.com/problems/add-two-numbers/ public class Solution { public ListNode addTwoNumbers ...
- [LeetCode] Add Two Numbers II 两个数字相加之二
You are given two linked lists representing two non-negative numbers. The most significant digit com ...
随机推荐
- IDA 头像是谁
IDA图标上的女子:Ada Lovelace Ada Lovelace 简介: 阿达·奥古斯塔,19世纪诗人拜伦的女儿,数学家.穿孔机程序创始人,建立了循环和子程序概念.为计算程序拟定“算法”,写作的 ...
- 逻辑卷管理(LVM)
LVM:Logical Volume Management 逻辑卷管理 LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性. 传统磁盘管理:我们上层是直接访问文件系统,从而对底层的物 ...
- .NET Core 3时代DevExpress Winforms v19.2增强Scheduler控件
DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅.美观且易于使用的应用程序.无论是Office风格的界面,还是分析处理大批量的业务数据,DevExpr ...
- maven项目bulid失败_No compiler is provided in this environment.
错误信息如下: [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather ...
- AOP初步
一刀切的AOP基础 软件开发的目的,最终是为了解决各种需求,包括业务和系统的,使用OOP可以对业务需求等普通关注点进行很好的抽象和封装,并且使之模块化. 但OOP却无法解决类似于日志.安全.事务等系统 ...
- 把 textbox 遍历赋值为空
foreach (Control aa in this.Form.Controls){ if (aa.GetType().ToString() == "System.Web.UI.We ...
- codevs 1200 同余方程 2012年NOIP全国联赛提高组 x
/*我在提交的时候发现了一个特别好玩的事,有兴趣的话,可以自己尝试一下:把下面说的地方的y=0改为y=1在codevs里面能够ac,这……数据水?到一定境界……厉害了,吓得我还以为自己对了,结果一讲才 ...
- codeforces269B
Greenhouse Effect CodeForces - 269B Emuskald is an avid horticulturist and owns the world's longest ...
- MySQL索引(二)B+树在磁盘中的存储
MySQL索引(二)B+树在磁盘中的存储 回顾  上一篇文章<MySQL索引为什么要用B+树>讲了MySQL为什么选择用B+树来作为底层存储结构,提了两个知识点: B+树索引并不能直接找 ...
- apt-get build-dep命令详解
apt-get build-dep命令详解 - 星星之火的Blog - CSDN博客 https://blog.csdn.net/starflame/article/details/7416311 ...