当前位置: 首页 > article >正文

【数据结构 | 链表】leetcode 2. 两数相加

个人主页:兜里游客棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里游客棉花糖 原创
收录于专栏【LeetCode】

原题链接:点击直接跳转到该题目

目录

  • 题目描述
  • 解题代码

题目描述

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例1:

在这里插入图片描述
输入: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* cur1 = l1,*cur2 = l2;
        ListNode* newhead = new ListNode(0);
        ListNode* prev = newhead;
        int t = 0;
        while(cur1 || cur2 || t)
        {
            if(cur1)
            {
                t += cur1->val;
                cur1 = cur1->next;
            }
            if(cur2)
            {
                t += cur2->val;
                cur2 = cur2->next;
            }
            prev->next = new ListNode(t % 10);
            prev = prev->next;
            t /= 10;
        }
        prev = newhead->next;
        delete newhead;
        return prev;
    }
};

http://www.kler.cn/a/132361.html

相关文章:

  • 源码分析Spring Boot (v3.3.0)
  • Pytest-Bdd-Playwright 系列教程(12):步骤参数 parsers参数解析
  • Cyberchef使用功能之-多种压缩/解压缩操作对比
  • Unix发展历程的深度探索
  • 使用Faiss构建音频特征索引并计算余弦相似度
  • Ascend C算子性能优化实用技巧05——API使用优化
  • Os-ByteSec
  • Oracle 存储过程数据插入临时表慢以及SQL语句查询慢
  • 【第2章 Node.js基础】2.7 Node.js 的流(一)可写流
  • 互联网上门预约洗衣洗鞋店小程序;
  • java的包装类
  • 【Mysql学习笔记】1 - Mysql入门
  • 【Linux】Ubuntu16.04下安装python高版本--源码安装
  • Docker Golang 开发环境搭建指南
  • AODNet
  • 【docker启动的Jenkins时,遇到时区问题处理】
  • vscode编写verilog的插件【对齐、自动生成testbench文件】
  • SQLMAP --TAMPER的编写
  • 记录一些涉及到界的题
  • 字符串函数详解
  • 重温《Unix设计哲学》
  • Leetcode——最长递增子序列
  • RPC实现简单解析
  • 从零开始写一个APM监控程序(一)协议
  • 机器学习算法——集成学习
  • java代码的错误