【大数相加链表模拟】
题意:两个长度为[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; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效