力扣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;
	}
}
相关推荐
2501_941147712 小时前
高并发微服务架构Spring Cloud与Dubbo在互联网优化实践经验分享
leetcode
稚辉君.MCA_P8_Java4 小时前
Gemini永久会员 Java中的四边形不等式优化
java·后端·算法
稚辉君.MCA_P8_Java4 小时前
通义 插入排序(Insertion Sort)
数据结构·后端·算法·架构·排序算法
无限进步_4 小时前
C语言动态内存的二维抽象:用malloc实现灵活的多维数组
c语言·开发语言·数据结构·git·算法·github·visual studio
Swift社区5 小时前
LeetCode 432 - 全 O(1) 的数据结构
数据结构·算法·leetcode
逝玄5 小时前
关于图灵停机问题不可判定性证明
算法·计算机科学
低客的黑调5 小时前
为你的项目选择一个适合的[垃圾收集器]
java·jvm·算法
芬加达5 小时前
leetcode34
java·数据结构·算法
资深web全栈开发5 小时前
LeetCode 1015. 可被 K 整除的最小整数 - 数学推导与鸽巢原理
算法·leetcode·职场和发展