力扣hot100 两数相加 链表 思维

Problem: 2. 两数相加

Code

⏰ 时间复杂度: O ( n ) O(n) O(n)

🌎 空间复杂度: O ( n ) O(n) O(n)

Java 复制代码
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
	public ListNode addTwoNumbers(ListNode l1, ListNode l2)
	{
		ListNode res = new ListNode();
		ListNode cur = res;
		int c = 0;//保存进位信息
		while (l1 != null && l2 != null)//进行两个数最低位的相加
		{
			int x = (l1.val + l2.val + c) % 10;
			cur.next = new ListNode(x);
			cur = cur.next;
			c = (l1.val + l2.val + c) / 10;
			l1 = l1.next;
			l2 = l2.next;
		}
		while (l1 != null)//处理数位较多的数 和 进位
		{
			int x = (l1.val + c) % 10;
			c = (l1.val + c) / 10;
			cur.next = new ListNode(x);
			cur = cur.next;
			l1 = l1.next;
		}
		while (l2 != null)//处理数位较多的数 和 进位
		{
			int x = (l2.val + c) % 10;
			c = (l2.val + c) / 10;
			cur.next = new ListNode(x);
			cur = cur.next;
			l2 = l2.next;
		}
		if (c != 0)//处理最后一个进位
			cur.next = new ListNode(c);

		return res.next;
	}
}
相关推荐
灵感__idea38 分钟前
Hello 算法:让前端人真正理解算法
前端·javascript·算法
学习2年半1 小时前
小米笔试题:一元一次方程求解
算法
MATLAB代码顾问1 小时前
MATLAB绘制多种混沌系统
人工智能·算法·matlab
极客BIM工作室2 小时前
演化搜索与群集智能:五种经典算法探秘
人工智能·算法·机器学习
qq_574656252 小时前
java-代码随想录第66天|Floyd 算法、A * 算法精讲 (A star算法)
java·算法·leetcode·图论
金融街小单纯3 小时前
从蓝军建设中学习颠覆性质疑思维
人工智能·算法·机器学习
少许极端4 小时前
算法奇妙屋(五)-链表
数据结构·算法·链表
学IT的李相赫4 小时前
{【MySQL】深入解析InnoDB存储引擎的MVCC机制与实现原理}
链表
XISHI_TIANLAN4 小时前
【多模态学习】Q&A6: 什么是MOE架构?Router Z Loss函数是指什么?负载均衡损失(Load Balancing Loss)又是什么?
学习·算法·语言模型
木子.李3474 小时前
数据结构-算法C++(额外问题汇总)
数据结构·c++·算法