力扣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;
	}
}
相关推荐
Dream it possible!24 分钟前
LeetCode 热题 100_只出现一次的数字(96_136_简单_C++)(哈希表;哈希集合;排序+遍历;位运算)
c++·leetcode·位运算·哈希表·哈希集合
?abc!1 小时前
缓存(5):常见 缓存数据淘汰算法/缓存清空策略
java·算法·缓存
BioRunYiXue1 小时前
一文了解氨基酸的分类、代谢和应用
人工智能·深度学习·算法·机器学习·分类·数据挖掘·代谢组学
jiunian_cn2 小时前
【c++】异常详解
java·开发语言·数据结构·c++·算法·visual studio
工藤新一¹4 小时前
蓝桥杯算法题 -蛇形矩阵(方向向量)
c++·算法·矩阵·蓝桥杯·方向向量
Levin__NLP_CV_AIGC4 小时前
解决pip安装PyPI默认源速度慢
算法·pip
Helibo444 小时前
GESPC++六级复习
java·数据结构·算法
EnticE1525 小时前
[高阶数据结构]二叉树经典面试题
数据结构·算法·面试
MarkHard1235 小时前
Leetcode (力扣)做题记录 hot100(34,215,912,121)
算法·leetcode·职场和发展
_星辰大海乀6 小时前
数据库约束
java·数据结构·数据库·sql·链表