题目链接: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。
    1. 更新进位数的值:carNum = sum / 10;
    2. 获得当前位的值: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的更多相关文章

  1. No.002 Add Two Numbers

    Add Two Numbers Total Accepted: 160702 Total Submissions: 664770 Difficulty: Medium You are given tw ...

  2. LeetCode #002# Add Two Numbers(js描述)

    索引 思路1:基本加法规则 思路2:移花接木法... 问题描述:https://leetcode.com/problems/add-two-numbers/ 思路1:基本加法规则 根据小学学的基本加法 ...

  3. LeetCode--No.002 Add Two Numbers

    Add Two Numbers Total Accepted: 160702 Total Submissions: 664770 Difficulty: Medium You are given tw ...

  4. leetcode刷题: 002 Add Two Numbers

    You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...

  5. 【JAVA、C++】LeetCode 002 Add Two Numbers

    You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...

  6. 【LeetCode】002 Add Two Numbers

    题目: You are given two non-empty linked lists representing two non-negative integers. The digits are ...

  7. 002 Add Two Numbers 链表上的两数相加

    You are given two non-empty linked lists representing two non-negative integers. The digits are stor ...

  8. [Leetcode] 002. Add Two Numbers

    https://leetcode.com/problems/add-two-numbers/ public class Solution { public ListNode addTwoNumbers ...

  9. [LeetCode] Add Two Numbers II 两个数字相加之二

    You are given two linked lists representing two non-negative numbers. The most significant digit com ...

随机推荐

  1. IntelliJ IDEA安装后几个重要的目录及配置文件讲解

    本文大概记录了IntelliJ IDEA安装之后比较重要的目录和几个核心文件 重要的安装目录 安装完之后的bin目录大致如下 IntelliJ IDEA 的安装目录并不复杂,上图为最常改动的 bin ...

  2. https加载http资源,导致ios手机上的浏览器图片加载问题

    今天解决一个线上bug的时候发现的问题,如下图: 从表象来看,同样的图片,安卓手机上可以正常展示,但是到ios手机上首次进入页面就不能正常显示图片,必须手动刷新一次页面才能正常加载. 这时候,我们首先 ...

  3. Java 对象序列化和反序列化 (实现 Serializable 接口)

    序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化.  把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放 ...

  4. 阅读之web应用安全

    一.三种坏人与servlet安全 认证可以防止“假冒者”攻击,授权可以防止“非法升级者”攻击,机密性和数据完整性可以防止“窃听者”攻击. 二.认证与授权 Web容器进行认证与授权的过程: 客户端:浏览 ...

  5. QSettings 介绍

    https://blog.csdn.net/liang19890820/article/details/50513695 QSettings settings(“./test.ini”, QSetti ...

  6. pheonix从入门到进阶

    别人写的帖子感觉很好,记录一下: https://blog.csdn.net/u013411339/article/details/90657429

  7. SparkSQL之UDF使用

    package cn.piesat.test import org.apache.spark.sql.SparkSession import scala.collection.mutable.Arra ...

  8. Java进阶知识03 Hibernate的基础配置详解

    1.Hibernate的原理/流程步骤 1.通过Configuration().configure(); 读取并解析hibernate.cfg.xml配置文件,并创建一个configuration对象 ...

  9. 用Python操作excel文档

    使用Python第三方库 这一节我们学习如何使用Python去操作Excel文档.如果大家有人不知道Excel的话,那么建议先学一学office办公基础.这里想要操作Excel,必须安装一个Pytho ...

  10. jQuery事件之一次性事件

    语法: $(selector).one(type, data, callback) 作用: (1)为每一个匹配元素的特定事件(比如click)绑定一个一次性的事件处理函数. (2)每个对象上,这个事件 ...