news 2026/3/1 18:17:03

【剑指Offer】两数相加II

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【剑指Offer】两数相加II

给定两个非空链表l1l2来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。

可以假设除了数字 0 之外,这两个数字都不会以零开头。

/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int val=0, ListNode next=null) { * this.val = val; * this.next = next; * } * } */ public class Solution { public ListNode AddTwoNumbers(ListNode l1, ListNode l2) { // 思路:用两个栈存储两个链表的所有节点,存储完毕后开始出栈进行相加 // 定义两个栈s1和s2存储所有的节点 Stack<int> s1 = new(); Stack<int> s2 = new(); ListNode l1Clone = l1; ListNode l2Clone = l2; PushToStack(l1Clone, s1); PushToStack(l2Clone, s2); // 定义一个bool表示下个数是否需要进一 bool addOne = false; // 定义一个空节点表示结果的头节点resultNode ListNode resultNode = null; // 找出栈元素更多的那个栈的数量 int n = s1.Count >= s2.Count ? s1.Count: s2.Count; // 进行一个while循环,循环条件为Count较大的那个栈栈顶还有元素 while(n > 0 || addOne) { // 计算节点的值 int _val = 0; if(s1.TryPop(out int num1)) _val += num1; if(s2.TryPop(out int num2)) _val += num2; // 判断是否需要进一 if(addOne) { _val ++; addOne = false; } // 判断是否大于10,若大于10则减去10且下次要进一 if(_val >= 10) { _val -= 10; addOne = true; } // 每次循环创建一个新的节点,该节点的下一个节点为resultNode ListNode tmpNode = new ListNode(val: _val, next: resultNode); // 让resultNode指向该新节点 resultNode = tmpNode; // n -- n --; } // 返回resultNode return resultNode; } private void PushToStack(ListNode node, Stack<int> stack) { while(node != null) { stack.Push(node.val); node = node.next; } } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/28 13:20:37

闭包不难懂:前端开发者必须掌握的JavaScript核心技巧(附实战场

闭包不难懂&#xff1a;前端开发者必须掌握的JavaScript核心技巧&#xff08;附实战场闭包不难懂&#xff1a;前端开发者必须掌握的JavaScript核心技巧&#xff08;附实战场景&#xff09;引言&#xff1a;从一个让人困惑的小例子说起闭包到底是什么&#xff1f;别被术语吓到作…

作者头像 李华
网站建设 2026/2/27 7:47:21

震惊!AI已悄悄内化为你的编程伙伴,小白开发者必知的5大生存法则

主要内容 LLM的渗透已进入“内化期”。市场关注点正从单纯的流量规模转向量化的价值创造&#xff08;推理深度、职场渗透率、生态协同&#xff09;。厂商竞争的关键点将在于如何通过提升“逻辑深度”来优化“信息质量”&#xff0c;并在职场及全球化增量市场中实现差异化价值捕…

作者头像 李华
网站建设 2026/2/26 2:20:28

MindSpore动态图静态图融合开发实践

一、引言MindSpore作为昇腾生态下的全场景AI框架&#xff0c;凭借其动态图&#xff08;PyNative&#xff09;与静态图&#xff08;Graph&#xff09;融合的独特优势&#xff0c;既满足了开发者在模型调试阶段对灵活性的需求&#xff0c;又能保障模型部署时的高性能。动态图模式…

作者头像 李华