【大数相加链表模拟】

leetcode 2. 两数相加

题意:两个长度为[1, 100]的大数,分别倒序存储(个位在链表头)在两个链表中,计算两个数的和,并倒序存储在一个新链表,返回链表表头。数据中不存在前导零。

题解:模拟大数相加,注意维护进位carry即可

代码
/**
* 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 head, tail;
head = tail = null;
int carry = 0;
while(l1 != null || l2 != null) {
int val1 = 0, val2 = 0;
if(l1 != null) val1 = l1.val;
if(l2 != null) val2 = l2.val;
int sum = val1 + val2 + carry;
if(sum >= 10) {carry = 1; sum %= 10;}
else carry = 0;
if(head == null) {
head = tail = new ListNode(sum, null);
} else {
tail.next = new ListNode(sum, null);
tail = tail.next;
}
if(carry == 1) tail.next = new ListNode(carry, null);
if(l1 != null) l1 = l1.next;
if(l2 != null) l2 = l2.next;
}
return head;
}
}
posted @   沙汀鱼  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示