Add Two Numbers 把两个以链表形式表示的数相加 @LeetCode

Vivado2022.2下载安装 链接:https://pan.baidu.com/s/1lyfE2d-VmaWC-_aR8ratCQ提取码:mt09。 阅读详情

思路:

新建结果链表,用3个指针处理,注意carry

package Level3;

import Utility.ListNode;

/**
 * 
 * Add Two Numbers 
 *
 * 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 numbers and return it as a linked list.

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
 */
public class S2 {

	public static void main(String[] args) {
		ListNode l1 = new ListNode(2);
		ListNode x2 = new ListNode(4);
		ListNode x3 = new ListNode(3);
		l1.next = x2;
		x2.next = x3;
		
		ListNode l2 = new ListNode(5);
		ListNode y2 = new ListNode(6);
		ListNode y3 = new ListNode(4);
		l2.next = y2;
		y2.next = y3;
		
		ListNode ret = addTwoNumbers(l1, l2);
		ret.print();
	}
	
	public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
		int carry = 0;			// 进位
		ListNode p1 = l1;		// 标记l1的位置
		ListNode p2 = l2;		// 标记l2的位置
		ListNode ret = null;	// 返回链表
		ListNode p3 = ret;	// 标记返回链表的位置
		
		// 处理相同长度部分
		while(p1!=null && p2!=null){
			int add = p1.val + p2.val + carry;
			if(add < 10){
				carry = 0;
			}else{
				add -= 10;
				carry = 1;
			}
			ListNode n = new ListNode(add);
			if(ret == null){
				ret = n;
				p3 = n;
			}else{
				p3.next = n;
				p3 = n;
			}
			p1 = p1.next;
			p2 = p2.next;
		}

		// 处理不同长度部分
		while(p1 != null){
			int add = p1.val + carry;
			if(add < 10){
				carry = 0;
			}else{
				add -= 10;
				carry = 1;
			}
			ListNode n = new ListNode(add);
			p3.next = n;
			p3 = n;
			p1 = p1.next;
		}
		
		while(p2 != null){
			int add = p2.val + carry;
			if(add < 10){
				carry = 0;
			}else{
				add -= 10;
				carry = 1;
			}
			ListNode n = new ListNode(add);
			p3.next = n;
			p3 = n;
			p2 = p2.next;
		}
		
		// 处理最后可能会出现的进位
		if(p1==null && p2==null && carry!=0){
			ListNode n = new ListNode(carry);
			p3.next = n;
		}
		
		return ret;
	}

}


同合并链表题

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode cur1 = l1, cur2 = l2;
        ListNode dummy = new ListNode(0);
        ListNode cur = dummy;
        int carry = 0;
        while(cur1 != null && cur2 != null) {
            int sum = cur1.val + cur2.val + carry;
            if(sum >= 10) {
                carry = 1;
                cur.next = new ListNode(sum-10);
            } else {
                carry = 0;
                cur.next = new ListNode(sum);
            }
            cur1 = cur1.next;
            cur2 = cur2.next;
            cur = cur.next;
        }
        
        while(cur1 != null) {
            int sum = cur1.val + carry;
            if(sum >= 10) {
                carry = 1;
                cur.next = new ListNode(sum-10);
            } else {
                carry = 0;
                cur.next = new ListNode(sum);
            }
            cur1 = cur1.next;
            cur = cur.next;
        }
        
        while(cur2 != null) {
            int sum = cur2.val + carry;
            if(sum >= 10) {
                carry = 1;
                cur.next = new ListNode(sum-10);
            } else {
                carry = 0;
                cur.next = new ListNode(sum);
            }
            cur2 = cur2.next;
            cur = cur.next;
        }
        
        if(carry == 1) {
            cur.next = new ListNode(1);
        }
        
        return dummy.next;
    }
}






YOLOv8改进 | 主干网络 | 将主干网络替换为轻量化的ShuffleNetv2【原理 + 完整代码】 yolov8,yolov8创新,yolov8改进 阅读详情

相关推荐

金蝶云ERP远程办公指南:零公网IP实现安全内网穿透访问

本文详细介绍了如何利用内网穿透技术,在无需公网IP和复杂路由器设置的情况下,安全远程访问内网部署的金蝶云ERP系统。通过使用cpolar工具,逐步指导用户创建加密隧道、配置固定域名,并实现管理中心与数据中心的远程登录,有效解决了企业员工在外出或居家办公时的核心业务系统访问难题。

weixin_29229261的博客 269

给定两个链表表示的整数,编写函数对这两个整数求和,并用链表形式返回结果。

// Definition for singly-linked list. // class ListNode { // int val; // ListNode next; // ListNode(int x) { val = x; } // } class Solution { public ListNode addTwoNumb...

binbigdata的博客 3387

USB-Blaster在Win11报错?3分钟搞定驱动兼容性问题(Quartus 21.4实测)

本文针对Windows 11系统下USB-Blaster驱动安装问题,提供了一套快速解决方案。通过优化驱动安装流程、绕过签名验证及设备管理器高级技巧,帮助开发者在3分钟内解决Quartus 21.4的兼容性问题,提升FPGA调试效率。

weixin_30772105的博客 292

lintcode 756. 两数相乘

给出两个链表形式表示的数字,写一个函数得到这两个链表相乘乘积。 样例 样例 1: 输入:9->4->6->null,8->4->null 输出:79464 解释:946*84=79464 样例 2: 输入:3->2->1->null,1->2->null 输出:3852 解释:321*12=3852 /** * Definitio...

sinb妃的博客 346

ubuntu18.04 显卡驱动问题 造成屏幕分辨变大 NVIDIA-SMI has failed because it couldn't communicate with ....等问题

问题1:装好了显卡驱动,cudnn,tensorflow等没问题,一直可以用。但是突然有一天不行了,终端输入:nvidia-smi 显示:NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed...

梦萦飞--CV/DL/ML 2248

44、单级静态电流消耗最小化方法及功率优化比较器设计

本文探讨了单级静态电流消耗最小化方法及功率优化的多米诺逻辑比较器设计。通过分析类“AB”输入CMOS差分对电路,提出利用补偿电流源实现高低电流模式切换,提升运算放大器性能;结合VTCMOS与时钟门控技术,在90nm CMOS中设计低功耗比较器,并采用多米诺逻辑提高速度与能效。通过对比传统与改进型多米诺逻辑的静态功耗、动态功耗、延迟和PDP,验证了所提方案在高性能与低功耗方面的优势,适用于便携式设备等对能效要求严苛的应用场景。

pp12345的博客 121

链式A+B--有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。 给定两个链表ListNode* A,Li

题目描述 有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。 给定两个链表ListNode*A,ListNode*B,请返回A+B的结果(ListNode*)。 测试样例: {1,2,3},{3,2,1} 返回:{4,4,4} 解题思路: 首先判...

Light丶Long的博客 2203

高通平台N4单路输入的720P相机预览

N4的一路720P Camera作为MIPI摄像头使用

llw21680的专栏 165

两数相乘

给出两个链表形式表示的数字,写一个函数得到这两个链表相乘乘积。 样例 样例 1: 输入:9->4->6->null,8->4->null 输出:79464 解释:946*84=79464 样例 2: 输入:3->2->1->null,1->2->null 输出:3852 解释:321*12=3852 /** *...

weixin_41791402的博客 1486

【k8s故障处理篇】calico-kube-controllers状态为“ImagePullBackOff”解决办法

【k8s故障处理篇】calico-kube-controllers状态为“ImagePullBackOff”解决办法

jks212454的博客 2308

玩转Docker小游戏项目系列:Docker部署吃豆人经典小游戏

玩转Docker小游戏项目系列:Docker部署吃豆人经典小游戏

jks212454的博客 733

python求两个链表组成的数字的和

给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -&gt; 4 -&gt; 3) + (5 -&gt; 6 -&gt; 4) 输出:7 -&gt; 0 -&gt; 8 原因:342 + 465 = 807代码实现:# Definition for singl...

u013230391的博客 1024

ZED双目相机环境配置

ZED SDK 安装文件夹中有一个 Python 脚本(get_python_api.py),可以自动检测操作系统、CUDA 和 Python 版本并下载相应的预编译 Python API 包(pyzed)。安装SDK成功后,我们进入ZED SDK文件夹中的tools子文件夹,运行ZED Explorer.exe 以及 ZED Depth Viewer.exe,查看ZED相机是否能正常启用工作。在本例中,我们简单地检索ZED相机的序列号:打开 ZED相机,然后打印其序列号,然后关闭相机。

qq_53545309的博客 2140

给定两个用链表表示的整数,每个节点包含一个数位。

给定两个用链表表示的整数,每个节点包含一个数位。 这些数位是反向存放的,也就是个位排在链表首部。 编写函数对这两个整数求和,并用链表形式返回结果。 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { .

疯狂小羊的博客 2707

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

leetcode——Add Two Numbers 两个链表表示的正整数对其求和(AC)

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 numbers and return it as a link

axiaochong的专栏 1456

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

给出两个链表形式表示的数字,写一个函数得到这两个链表相乘乘积

package com.lxg.algorithm; import java.util.Arrays; public class Solution06 { /** * @param l1: the first list * @param l2: the second list * @return: the product list of l1 and l2 */ public static long multiplyLists(ListNode l

weixin_44296113的博客 347

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【Leetcode刷题篇】(十)两数相加(链表表示)

题目: https://leetcode-cn.com/problems/add-two-numbers/ 给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0开头。 示例: 输入:(...

小川儿的博客 359

常见面试算法题:给定两个非空链表来表示两个非负整数

代码如下:

建设美丽祖国 5953

c语言给定两个用链表表示的整数,救命啊!!!两个链表的程序.

该楼层疑似违规已被系统折叠隐藏此楼查看此楼#include#include#define max 10000typedef struct{int data;int cursor;}Component,StaticList[max];void Print(Component space[],int *av);void Choose(int choice,Component space[],int ...

weixin_34395361的博客 424

leetcode-面试题2.05链表求和

题目 给定两个用链表表示的整数,每个节点包含一个数位。 这些数位是反向存放的,也就是个位排在链表首部。 编写函数对这两个整数求和,并用链表形式返回结果。 示例: 输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295 输出:2 -> 1 -> 9,即912 进阶:假设这些数位是正向存放的,请再做一遍。 示例: 输入:(6 -&gt...

qq_41603639的博客 745

Leetcode刷题指南- 链表两数相乘(756)

文章目录1)题目链表节点计数要求:样例:2)思路3)代码普通方法: 1)题目 链表节点计数 要求: 计算链表中有多少个节点。 样例: 样例 1: 输入: 1->3->5->null 输出: 3 样例解释: 返回链表中结点个数,也就是链表的长度. 样例 2: 输入: null 输出: 0 样例解释: 空链表长度为0 2)思路 从头节点开始遍历,不为空,计数加1 3)代...

qq_39751437的博客 1056

用单向链表表示十进制整数,求两个正整数的和。如,1234+34=1268,注意单项链表的方向从前向后,不允许使用其他数据结构。

遵循 http://creativecommons.org/licenses/by-sa/4.0/版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.youkuaiyun.com/Thomas0713/article/details/83052257 class SingleNode(object): """ 单向链表节点 """ # i...

stujike123456的博客 916

链式A+B

题目描述 有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。 给定两个链表ListNode* A,ListNode* B,请返回A+B的结果(ListNode*)。 测试样例: {1,2,3},{3,2,1} 返回:{4,4,4} public class Plus { //链式A

feige1990的专栏 838

链式A+B有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。 给定两个链表ListNode* A,ListN

有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。 给定两个链表ListNode* A,ListNode* B,请返回A+B的结果(ListNode*)。 测试样例: {1,2,3},{3,2,1} 返回:{4,4,4} package 链表

woshieer的博客 1051
上一篇: String to Integer (atoi) 转换string为整数@LeetCode
下一篇: 删数问题
chiiis
博客等级 码龄14年 422粉丝 429原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值