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 ...
随机推荐
- 开源框架相关面试问题-butterknife注解框架面试问题讲解
butterknife使用简介: 它的出现主要是为了解决咱们在android开发中会写大量的findViewById().setOnClickListener()这样的索然无味的代码,其实它就是一个依 ...
- Web的了解和servlet的初次见面
web 相信大家都不陌生,平常我们浏览网页用的都是web服务.互联网起初的web就是非常简单的页面,但是随着客户需求越来越复杂,需要的功能越来越多,我们的服务器端需要处理的请求越来越多,需要区分不同的 ...
- Redis 与 MQ 的区别
Redis是一个高性能的key-value数据库,它的出现很大程度补偿了memcached这类key-value存储的不足.虽然它是一个数据库系统,但本身支持MQ功能,完全可以当做一个轻量级的队列服务 ...
- Blend Visual studio 和Visual studio 的区别
blend for visual studio 这个并不是用于开发中写代码的,而是专门用来做WPF的界面设计的.这是为了让专业的人做专业的事,尽量让写代码的人只使用visual studio,而做界面 ...
- Python-multiprocessing-Pool模块
from multiprocessing import Pool import os import time import random def long_time_task(name): print ...
- 深入理解python协程
目录 概述 生成器变形 yield/send yield send yield from asyncio.coroutine和yield from async和await 概述 由于 cpu和 磁盘读 ...
- 关于redis的主从、哨兵、集群(转)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/c295477887/article/de ...
- Python之hmac模块的使用
hmac模块的作用: 用于验证信息的完整性. 1.hmac消息签名(默认使用MD5加算法) #!/usr/bin/env python # -*- coding: utf-8 -*- import h ...
- B/S上传超大文件解决方案
4GB以上超大文件上传和断点续传服务器的实现 随着视频网站和大数据应用的普及,特别是高清视频和4K视频应用的到来,超大文件上传已经成为了日常的基础应用需求. 但是在很多情况下,平台运营方并没有大文件上 ...
- Javascript你必须要知道的知识点
1.使用 typeof bar === "object" 判断 bar 是不是一个对象有神马潜在的弊端?如何避免这种弊端? 使用 typeof 的弊端是显而易见的(这种弊端同使用 ...