首页 > 其他分享 >两数相加

两数相加

时间:2023-09-14 10:33:20浏览次数:51  
标签:head ListNode 相加 current l2 l1 null

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

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

你可以假设除了数字 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]

 

class Solution {

	public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
		ListNode head = null;
		ListNode current = head;
		int t = 0;
		while (l1 != null || l2 != null) {
			int a = l1 == null ? 0 : l1.val;
			int b = l2 == null ? 0 : l2.val;
			int r = a + b + t;
			if (r >= 10) {
				r -= 10;
				t = 1;
			} else {
				t = 0;
			}
			if (head == null) {
				head = new ListNode(r);
				current = head;
			} else {
				current.next = new ListNode(r);
				current = current.next;
			}
			l1 = l1 == null ? null : l1.next;
			l2 = l2 == null ? null : l2.next;
		}
		if (t != 0) {
			current.next = new ListNode(t);
		}
		return head;
	}

}

标签:head,ListNode,相加,current,l2,l1,null
From: https://blog.51cto.com/u_16040716/7468041

相关文章

  • 代码随想录算法训练营第7天| ● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和
    454.两数相加Ⅱmydemo--(超时失败)classSolution{public:intfourSumCount(vector<int>&nums1,vector<int>&nums2,vector<int>&nums3,vector<int>&nums4){intcount=0;for(inti=0;i<nums1.size()......
  • #yyds干货盘点# LeetCode程序员面试金典:字符串相加
    1.简述:给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。 示例1:输入:num1="11",num2="123"输出:"134"示例2:输入:num1="456",num2=......
  • 力扣--两数相加
    2.两数相加给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0开头。示例1:输入:l1=[2,4,3],l2=[5......
  • Python 字典的合并和值相加
    python实现:字典的合并(相同key的value相加)及字典的输出排序(各种意义下)_python字典合并与排序_Roxannekkk的博客-CSDN博客dict1={'a':2,'b':3}dict2={'a':3,'b':2}dict3={'c':3,'d':7}合并key相同,后一个字典覆盖前一个字典的value;key不同,新增dict1.update(dic......
  • 用单链表实现一元多项式相加 C++代码
     #include<iostream>usingnamespacestd;/*结点的定义*/typedefstructLNode{floatcoef;intexp;structLNode*next;}LNode;typedefLNode*Polynomial;/*多项式的初始化*/voidinitDuoX(Polynomial&Px){Px=newLNode;......
  • 力扣-2. 两数相加(C++题解)
    题目链接:https://leetcode.cn/problems/add-two-numbers/description/给你两个 非空的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之......
  • Leetcode 454. 四数相加 II(4sum ii)
    题目链接给你四个整数数组nums1、nums2、nums3和nums4,数组长度都是n,请你计算有多少个元组(i,j,k,l)能满足:0<=i,j,k,l<nnums1[i]+nums2[j]+nums3[k]+nums4[l]==0示例1:输入:nums1=[1,2],nums2=[-2,-1],nums3=[-1,2],nums4=[0,2]输出:2......
  • 【lc】415 字符串相加
    链接https://leetcode.cn/problems/add-strings/description/分析大数相加而已,倒着遍历,然后相加就好了。代码classSolution:defaddStrings(self,num1:str,num2:str)->str:num1,num2=(num1,num2)iflen(num1)>len(num2)else(num2,num1)......
  • Java简单实现大数相加
    Java简单实现大数相加publicclassBigNumberAdd{/***假设两个都是正数*@paramnum1*@paramnum2*@returnnum1+num2*/publicstaticStringadd(Stringnum1,Stringnum2){intm=num1.length();intn=......
  • 这个list元素是用;分割的字符串 将每个元素用;分割成字符串数组 并将每个数组将相同位
    publicstaticvoidmain(String[]args){List<String>list=newArrayList<>();list.add("2.0;2.2;4.0");list.add("3.0;4.2;5.0");list.add("4.0;5.2;3.0");String[]firstRow=list.get(0).split("......