Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >两数相加

两数相加

作者头像
OPice
修改于 2023-09-21 07:46:40
修改于 2023-09-21 07:46:40
98500
代码可运行
举报
文章被收录于专栏:D·技术专栏D·技术专栏
运行总次数:0
代码可运行

题目

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
示例:
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807

解答

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
         ListNode head = new ListNode(0);
        ListNode temp = head;
        int curr = 0;
        while (l1 != null || l2 != null) {

            int p = l1 != null ? l1.val : 0;
            int q = l2 != null ? l2.val : 0;
            int i = p + q + curr;
            int i1 = i / 10;
            int i2 = i % 10;
            temp.next = new ListNode(i2);
            temp = temp.next;

            curr = i1;
            if (l1 != null) {
                l1 = l1.next;
            }
            if (l2 != null) {
                l2 = l2.next;
            }
        }
        if (curr > 0) {
            temp.next = new ListNode(curr);
        }
        return head.next;
    }

测试方法:
public static void main(String[] args) {
        ListNode listNode1 = new ListNode(5);
        ListNode listNode11 = new ListNode(3);
        ListNode listNode12 = new ListNode(1);
        ListNode listNode13 = new ListNode(3);
        ListNode listNode2 = new ListNode(5);
        ListNode listNode21 = new ListNode(6);
        ListNode listNode22 = new ListNode(2);
        ListNode listNode23 = new ListNode(4);
        ListNode listNode24 = new ListNode(1);
        listNode1.next = listNode11;
        listNode11.next = listNode12;
        listNode12.next = listNode13;
        listNode2.next = listNode21;
        listNode21.next = listNode22;
        listNode22.next = listNode23;
        listNode23.next = listNode24;

        ListNode listNode = addTwoNumbers(listNode1, listNode2);
        System.out.println(listNode);
    }

来源:https://leetcode-cn.com/problems/add-two-numbers/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
从零打卡leetcode之day 2--两数相加
我靠,居然还用到了链表的知识,突然就想起了当初用c语言自学链表的那段日子,真的差点被搞死。各种指针指来指去的。
帅地
2018/08/30
6210
从零打卡leetcode之day 2--两数相加
002. 两数相加 | Leetcode题解
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
苏南
2020/12/16
6810
002. 两数相加 | Leetcode题解
No.002 Add Two Numbers
Add Two Numbers Total Accepted: 160702 Total Submissions: 664770 Difficulty: Medium   You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two n
mukekeheart
2018/02/27
4830
LeetCode - 两数相加
原题地址: https://leetcode-cn.com/problems/add-two-numbers/
晓痴
2019/07/24
6970
LeetCode - 两数相加
LeetCode每日一练(两数之和)
题目很好理解,就是给你两个链表,比如243和564,需要逆序得到链表所代表的的数值,分别是342和465,将这两个数相加,得到结果807,再逆序存回一个链表并返回。
wangweijun
2022/01/10
2210
LeetCode每日一练(两数之和)
画解算法 2-两数相加
https://leetcode-cn.com/problems/add-two-numbers/
灵魂画师牧码
2019/06/27
5010
画解算法 2-两数相加
02.两数相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
taixingyiji
2022/07/25
2740
Leetcode 2题 两数相加
https://leetcode-cn.com/problems/add-two-numbers/
code随笔
2021/07/20
2870
Leetcode 2题 两数相加
【LeetCode】2.两数相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
Delevin
2019/01/22
6510
【LeetCode】2.两数相加
Python 版 LeetCode 刷题笔记 #2 两数相加
今天的题目难度是中等,由于之前没接触过链表,看完题目一脸懵逼。Python 语法里哪有这个?这个自定义的 ListNode 要怎么用?在完成了整个计算过程后,我仍是花了一段时间琢磨明白如何正确返回这个类型。
TTTEED
2020/07/08
1.9K0
LeetCode16|两数相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
码农王同学
2020/08/12
3660
LeetCode16|两数相加
2.两数相加
题目 思路: 将两个链表看成是相同长度的进行遍历,如果一个链表较短则在前面补 00,比如 987 + 23 = 987 + 023 = 1010 每一位计算的同时需要考虑上一位的进位问题,而当前位计算结束后同样需要更新进位值 如果两个链表全部遍历完毕后,进位值为 11,则在新链表最前方添加节点 11 小技巧:对于链表问题,返回结果为头结点时,通常需要先初始化一个预先指针 pre,该指针的下一个节点指向真正的头结点head。使用预先指针的目的在于链表初始化时无可用节点值,而且链表构造过程需要指针移动,进而
名字是乱打的
2021/12/23
3780
2.两数相加
搞定大厂算法面试之leetcode精讲15.链表
搞定大厂算法面试之leetcode精讲15.链表 视频讲解(高效学习):点击学习 目录: 1.开篇介绍 2.时间空间复杂度 3.动态规划 4.贪心 5.二分查找 6.深度优先&广度优先 7.双指针 8.滑动窗口 9.位运算 10.递归&分治 11剪枝&回溯 12.堆 13.单调栈 14.排序算法 15.链表 16.set&map 17.栈 18.队列 19.数组 20.字符串 21.树 22.字典树 23.并查集 24.其他类型题 链表操作如下图: 动画过大,点击查看 时间复杂度: prepend: O(1
全栈潇晨
2021/12/02
4490
leetcode 2. 两数相加 js 实现
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
蓓蕾心晴
2022/09/24
2.4K0
leetcode 2. 两数相加 js 实现
LeetCode精讲——2. 两数相加(难度:中等)
给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
爪哇缪斯
2023/05/10
2430
LeetCode精讲——2. 两数相加(难度:中等)
LeetCode刷题:链表两数相加
通俗的讲就是从两个非空的链表获取节点值做一个加法,生成新的一个链表。根据事例提出几个问题:
全栈程序员站长
2021/04/07
2700
刷题记录(LeetCode 100 热题系列)
两数相加 LeetCode url (https://leetcode-cn.com/problems/add-two-numbers/)
猎户星座1
2021/01/17
9400
LeetCode2--两数相加
给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字0之外,这两个数字不会以0开头。 示例:
别团等shy哥发育
2023/02/27
1840
LeetCode2--两数相加
【一天一大 lee】两数相加 (难度:中等) - Day20201004
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
前端小书童
2020/10/26
2240
【一天一大 lee】两数相加 (难度:中等) - Day20201004
2. 两数相加
给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储 一位 数字。
Michel_Rolle
2021/03/01
2.8K0
相关推荐
从零打卡leetcode之day 2--两数相加
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验