首页 > 其他分享 >[LeetCode]002-两数相加

[LeetCode]002-两数相加

时间:2022-12-13 21:22:43浏览次数:53  
标签:ListNode val next 002 l2 l1 carry LeetCode 两数

>>>传送门

题目

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例

示例1

2 -> 4 -> 3
5 -> 6 -> 4
------------
7 -> 0 -> 8
输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.

示例2

输入:l1 = [0], l2 = [0]
输出:[0]

示例3

输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
输出:[8,9,9,9,0,0,0,1]

提示

  • 每个链表中的节点数在范围 [1, 100]
  • 0 <= Node.val <= 9
  • 题目数据保证列表表示的数字不含前导零

题解

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode* dummy = new ListNode();
        ListNode* p = dummy;
        int carry = 0;
        while (l1 || l2 || carry) {
            if (l1) carry += l1->val, l1 = l1->next;
            if (l2) carry += l2->val, l2 = l2->next;
            p->next = new ListNode(carry % 10);
            p = p->next;
            carry /= 10;
        }
        return dummy->next;
    }
};

标签:ListNode,val,next,002,l2,l1,carry,LeetCode,两数
From: https://www.cnblogs.com/yuyork/p/16980648.html

相关文章

  • LeetCode HOT 100:组合总和
    题目:39.组合总和题目描述:给你一个没有重复元素的数组,和一个target目标值,返回数组中可以使数字和为目标数target的所有不同组合。什么叫组合?组合就是数组中任意数字组成......
  • MFC的固高环形倒立摆GRIP2002实验平台
     固高环形倒立摆GRIP2002是基于GT-400-SV-PCI运动控制卡的一个二级环形倒立摆(摆杆和连杆两根杆的摆),固高公司提供了一个DOS环境下的Demo和MATLAB7.0的simulink的Demo,但DO......
  • LeetCode刷题---2022.12.13
    2. 两数相加给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加......
  • [oeasy]python0029_放入系统路径_PATH_chmod_程序路径_执行原理
    ​ 放入路径回忆上次内容上次总算可以把sleep.py直接执行了sleep.py文件头部要声明好打开方式#!/usr/bin/python3用的是python3解释sleep.py修改......
  • #yyds干货盘点# LeetCode程序员面试金典:环路检测
    题目:给定一个链表,如果它是有环链表,实现一个算法返回环路的开头节点​。若环不存在,请返回 null。如果链表中有某个节点,可以通过连续跟踪 next​ 指针再次到达,则链表中存在......
  • LeetCode 215_数组中的第K个最大元素
    LeetCode215:数组中的第K个最大元素题目给定整数数组nums和整数k,请返回数组中第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个......
  • 代码随想录训练营第六天|LeetCode242有效的字母异位词、LeetCode349两个数组的交集、L
    LeetCode242有效的字母异位词tag:#哈希表#数组leetcode地址:242. 有效的字母异位词代码://通过数组的方式对每个字母进行统计数量,然后遍历数组,查看是否每一项都为0f......
  • [LeetCode]001-两数之和
    >>>传送门题目给定一个整数数组nums 和一个整数目标值target,请你在该数组中找出和为目标值target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入......
  • 【LeetCode】二分法--剑指 Offer 53 - I. 在排序数组中查找数字 I
    点击直达题目内容统计一个数字在排序数组中出现的次数。示例示例1:输入:nums=[5,7,7,8,8,10],target=8输出:2示例2:输入:nums=[5,7,7,8,8,10],target......
  • LeetCode962. Maximum Width Ramp
    题意给一个序列,求其中最大的j-i,满足i<j且num[i]<=nums[j]方法单调栈代码classSolution{public:intmaxWidthRamp(vector<int>&A){stack<int......