LeetCode:2. 两数相加

发布时间:2026/7/5 16:49:13

LeetCode:2. 两数相加 简介题目链接https://leetcode.cn/problems/add-two-numbers/description/解决方式链表 双指针这是作者学习众多大神的思路进行解题的步骤很推荐大家解题的时候去看看题解里面大佬们的思路、想法推荐看画手大鹏大佬的讲解。双指针解题思路两个指针分别指向两个链表的头节点由于链表的头节点就是数字的最后一位所以可以直接相加。这题需要注意的是两数相加后的进位和进位后的余数。而伪头节点基本上是涉及到创建第三方链表的必备了主要目的是指向真正的头节点防止链表丢失。classSolution{publicListNodeaddTwoNumbers(ListNodel1,ListNodel2){// 伪头节点防止第三个链表丢失ListNodewheadnewListNode(0);// 迭代指针ListNodeprewhead;// 低位的进位intcarry0;// 两链表其中一个不为 null 则不断迭代。while(l1!null||l2!null){// null 的那个高位补零intxl1!null?l1.val:0;intyl2!null?l2.val:0;// 计算进位和余数intsumxycarry;carrysum/10;sumsum%10;// 加入第三个链表中pre.nextnewListNode(sum);// 后移prepre.next;if(l1!null){l1l1.next;}if(l2!null){l2l2.next;}}// 最高位数字相加还有进位则创建最高位if(carry1){pre.nextnewListNode(1);}// 返回结果returnwhead.next;}}

相关新闻