0002.两数相加

发布时间:2026/5/30 6:59:54

0002.两数相加 题目链接2. 两数相加 - 力扣LeetCode题目大意描述给定两个非空的链表l1和l2。分别用来表示两个非负整数每位数字都是按照逆序的方式存储的每个节点存储一位数字。要求计算两个非负整数的和并逆序返回表示和的链表。说明每个链表中的节点数在范围 [1,100] 内。0≤Node.val≤9。题目数据保证列表表示的数字不含前导零。示例输入l1[2,4,3],l2[5,6,4]输出[7,0,8]解释342465807.输入l1[0],l2[0]输出[0]解题思路思路 1模拟模拟大数加法按位相加将结果添加到新链表上。需要注意进位和对 10 取余参考代码/** * 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; } * } */classSolution{publicListNodeaddTwoNumbers(ListNodel1,ListNodel2){ListNodeheadnewListNode(0);ListNodecurhead;// 初始化进位intcarry0;while(l1!null||l2!null||carry!0){intnum1(l1!null)?l1.val:0;intnum2(l2!null)?l2.val:0;intsumnum1num2carry;carrysum/10;// 将当前的个位数存入链表中cur.nextnewListNode(sum%10);curcur.next;// 移动l1和l2的指针if(l1!null){l1l1.next;}if(l2!null){l2l2.next;}}returnhead.next;}}

相关新闻