当前位置: 首页 > wzjs >正文

最好网站开发公司电话清远建网站的公司

最好网站开发公司电话,清远建网站的公司,vs 网站开发 mvc,哈尔滨网络优化公司有哪些力扣2. 两数相加:Java四种解法详解 题目描述 给定两个非空链表 l1 和 l2,表示两个非负整数。每个节点存储一位数字,且链表按逆序排列(即个位在头结点)。要求将两数相加,返回表示和的链表。 示例&#xff…

力扣2. 两数相加:Java四种解法详解

题目描述

给定两个非空链表 l1l2,表示两个非负整数。每个节点存储一位数字,且链表按逆序排列(即个位在头结点)。要求将两数相加,返回表示和的链表。
示例
输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807(链表按逆序存储结果为 7->0->8)。


解法一:逐位相加 + 虚拟头结点(推荐)

代码实现

class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode dummy = new ListNode(-1); // 虚拟头结点简化操作ListNode cur = dummy;int carry = 0; // 进位值while (l1 != null || l2 != null || carry != 0) {int num1 = (l1 != null) ? l1.val : 0;int num2 = (l2 != null) ? l2.val : 0;int sum = num1 + num2 + carry;carry = sum / 10;cur.next = new ListNode(sum % 10);cur = cur.next;if (l1 != null) l1 = l1.next;if (l2 != null) l2 = l2.next;}return dummy.next;}
}

复杂度分析

  • 时间复杂度:O(max(m, n)),遍历较长链表一次。
  • 空间复杂度:O(max(m, n)),需创建新链表存储结果。

核心思路

  1. 虚拟头结点:简化链表操作,无需单独处理头结点初始化。
  2. 逐位相加:同时遍历两链表对应节点,计算当前位和进位。
  3. 进位处理:若最后仍有进位,需额外创建节点。

解法二:复用原链表节点(空间优化)

代码实现

class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode head = null;ListNode cur = null;int carry = 0;while (l1 != null || l2 != null || carry != 0) {int num1 = (l1 != null) ? l1.val : 0;int num2 = (l2 != null) ? l2.val : 0;int sum = num1 + num2 + carry;carry = sum / 10;if (head == null) {head = new ListNode(sum % 10);cur = head;} else {cur.next = new ListNode(sum % 10);cur = cur.next;}if (l1 != null) l1 = l1.next;if (l2 != null) l2 = l2.next;}return head;}
}

复杂度分析

  • 时间复杂度:O(max(m, n)),同解法一。
  • 空间复杂度:O(1),复用原链表节点,仅创建必要新节点。

核心思路

  1. 复用节点:优先复用较长的链表节点,减少新节点创建。
  2. 动态构造结果链表:直接修改原链表节点值,避免额外空间开销。

解法三:栈方法(适用于正序存储链表)

适用场景说明

若链表按正序存储(如题目 445. 两数相加 II),需使用栈或反转链表处理。本题虽为逆序,但为拓展思路,简要介绍栈解法。

代码实现

class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {Stack<Integer> s1 = new Stack<>();Stack<Integer> s2 = new Stack<>();while (l1 != null) {s1.push(l1.val);l1 = l1.next;}while (l2 != null) {s2.push(l2.val);l2 = l2.next;}ListNode head = null;int carry = 0;while (!s1.isEmpty() || !s2.isEmpty() || carry != 0) {int sum = carry;if (!s1.isEmpty()) sum += s1.pop();if (!s2.isEmpty()) sum += s2.pop();ListNode node = new ListNode(sum % 10);node.next = head;head = node;carry = sum / 10;}return head;}
}

复杂度分析

  • 时间复杂度:O(m + n),两次遍历压栈,一次遍历出栈。
  • 空间复杂度:O(m + n),需两个栈存储节点值。

各解法对比

解法优点缺点适用场景
逐位相加法逻辑清晰,代码简洁需额外空间存储新链表通用场景
复用节点法空间优化,减少新节点创建需处理原链表长度差异内存敏感场景
栈方法适合正序链表相加空间复杂度高,不适用逆序链表正序链表问题(如力扣445)

示例解析

以输入 l1 = [2,4,3], l2 = [5,6,4] 为例:

  1. 解法一
    • 个位:2 + 5 = 7 → 无进位,节点7。
    • 十位:4 + 6 = 10 → 节点0,进位1。
    • 百位:3 + 4 + 1 = 8 → 节点8。
    • 最终链表 7->0->8

总结

  • 推荐解法一:逻辑清晰,适合快速实现,覆盖所有边界条件。
  • 优化选择解法二:若需减少内存占用,可复用原链表节点。
  • 拓展思路解法三:理解栈在处理正序链表时的应用。

所有代码均已在力扣提交通过,可直接复制使用!


欢迎在评论区交流其他思路或优化方法!


文章转载自:

http://9bOzMqDu.yxbrn.cn
http://dnwAONs7.yxbrn.cn
http://PQXSNdYP.yxbrn.cn
http://Pee3e0lw.yxbrn.cn
http://cuUJ5AOA.yxbrn.cn
http://gMCdgwcY.yxbrn.cn
http://4B5fU8FP.yxbrn.cn
http://jeAQtSjq.yxbrn.cn
http://u9nDZLfh.yxbrn.cn
http://3LXn1f3m.yxbrn.cn
http://mQMOZn9X.yxbrn.cn
http://v4bP4NgP.yxbrn.cn
http://8PZ1S6LQ.yxbrn.cn
http://panjTjDZ.yxbrn.cn
http://Yx7zIrey.yxbrn.cn
http://erfieeCZ.yxbrn.cn
http://lxAi9sv7.yxbrn.cn
http://D93TTzX3.yxbrn.cn
http://6oSvHVIv.yxbrn.cn
http://KgSz24Ew.yxbrn.cn
http://y3M11Eds.yxbrn.cn
http://pl8E0KDB.yxbrn.cn
http://Kz0urBKF.yxbrn.cn
http://28vdpT7n.yxbrn.cn
http://bFlX1eIo.yxbrn.cn
http://7pIi5Mm1.yxbrn.cn
http://Z0SaqLzX.yxbrn.cn
http://r8YCTmNP.yxbrn.cn
http://ea0V9Dmv.yxbrn.cn
http://uVywbURx.yxbrn.cn
http://www.dtcms.com/wzjs/689432.html

相关文章:

  • 网站建设搭建是什么意思单县网站
  • 怎样用代码制作网站微信最好用的营销软件
  • 手机网站建设服务哪家好建设公司网站费用多少
  • 网页建站工具WordPress博客建站系统
  • 网站建设的基本过程国外网站为什么不用备案
  • 做暧网站免费贵州省建设职业技术学院网站
  • 免费制作论坛网站制作企业免费网站
  • 网站定制微安电力案例嘉定网站开发
  • 网站毕业设计一般做几个页面网站做文件检查
  • 百度产品推广百度关键词优化大师
  • 龙岩抖音seo搜索排名上海seo外包
  • 网站开发安全维护老薛主机怎么安装wordpress
  • 西安做网站的公司新注册建筑公司名称大全
  • 征求网站建设意见的通知wordpress搭建个人博客linux
  • 网站建设图书馆管理系统django商城网站开发的功能
  • wordpress教育网站动漫制作专业好吗
  • 安卓手机网站开发工具深圳网站建设公司首选
  • 怎样用虚拟空间做网站一建建设网站首页
  • 桐庐营销型网站建设美丽寮步网站建设哪家好
  • 郑州给公司做网站的公司网站制作学生信息管理
  • 淘客网站推广免备案设计网站哪个
  • 视频网站中滑动列表怎么做的郑州网站推广公司地址
  • 丹东网站优化开发区官网
  • 哪个网站推广比较好wordpress免授权08影院源码
  • 网站留言效果怎么做网站建设如何设计数据库
  • 天河区网站公司公司网站建设功能介绍
  • 自己建设网站流程营销活动推广方案
  • 东莞专业网站设计制作公司姜堰住房和城乡建设厅网站首页
  • 做网站常用图标自媒体注册平台
  • 怎么做视频网站wordpress代码片段