迭代法求从根到叶的二进制数之和 迭代我们用栈来模拟递归同时使用一个 prev 指针来记录先前访问的节点。算法步骤如下我们用栈来模拟递归同时使用一个 prev 指针来记录先前访问的节点。算法步骤如下如果节点 root 非空我们将不断地将它及它的左节点压入栈中。我们从栈中获取节点该节点的右节点为空或者等于 prev 说明该节点的左子树及右子树都已经被访问我们将它出栈。如果该节点是叶子节点我们将它对应的数字 val 加入结果中。设置 prev 为该节点设置 root 为空指针。该节点的右节点非空且不等于 prev ,我们令 root 指向该节点的右节点。3.如果 root 为空指针或者栈空中止算法否则重复步骤 1。需要注意的是每次出入栈都需要更新 val 。代码Python3class Solution: def sumRootToLeaf(self, root: Optional[TreeNode]) - int: ans val 0 st [] pre None while root or st: while root: val (val 1) | root.val st.append(root) root root.left root st[-1] if root.right is None or root.right pre: if root.left is None and root.right is None: ans val val 1 st.pop() pre root root None else: root root.right return ansJavaclass Solution { public int sumRootToLeaf(TreeNode root) { DequeTreeNode stack new ArrayDequeTreeNode(); int val 0, ret 0; TreeNode prev null; while (root ! null || !stack.isEmpty()) { while (root ! null) { val (val 1) | root.val; stack.push(root); root root.left; } root stack.peek(); if (root.right null || root.right prev) { if (root.left null root.right null) { ret val; } val 1; stack.pop(); prev root; root null; } else { root root.right; } } return ret; } }Cclass Solution { public: int sumRootToLeaf(TreeNode* root) { stackTreeNode * st; int val 0, ret 0; TreeNode *prev nullptr; while (root ! nullptr || !st.empty()) { while (root ! nullptr) { val (val 1) | root-val; st.push(root); root root-left; } root st.top(); if (root-right nullptr || root-right prev) { if (root-left nullptr root-right nullptr) { ret val; } val 1; st.pop(); prev root; root nullptr; } else { root root-right; } } return ret; } };复杂度分析时间复杂度O(n) 其中 n 是节点数目。总共访问 n 个节点。空间复杂度O(n) 。栈最多压入 n 个节点。

相关新闻

最新新闻

2026 集团管理软件哪个品牌好?选对系统,管理效率翻倍

2026 集团管理软件哪个品牌好?选对系统,管理效率翻倍

你是不是也有这些困惑?"子公司报上来的数据和总部对不上""每个月合并报表要花两周""预算定了就没人管,超了才知道"……如果你是集团企业的管理者,这些问题是不是特别耳熟?2026年,集团企…

2026/8/25 20:55:07
EnvHarness 把静态环境「套个壳」就 +9 分:Google 让 Agent 训练场自己会进化

EnvHarness 把静态环境「套个壳」就 +9 分:Google 让 Agent 训练场自己会进化

EnvHarness 把静态环境「套个壳」就 9 分:Google 让 Agent 训练场自己会进化 Hugging Face 每日论文(2026-08-21 精选) AI 智能体在游戏与网页里点来点去看似热闹,背后其实一直被一个老问题卡住——训练用的那些环境是「一次写死、…

2026/8/25 20:55:07
项目管理软件哪个好?别被排行榜骗了,3 个真实数据讲透选型

项目管理软件哪个好?别被排行榜骗了,3 个真实数据讲透选型

全文约 700 字,阅读约 2 分钟。 重点内容:没有"最好"的项目管理软件,只有适配你的。Worktile 2024 调研 87 家采购企业,54% 买后 12 个月还在用,仅 21% 全员活跃;PMI 2023 报告 62% 系统失败源于…

2026/8/25 20:55:07
LeetCode 热题 100

LeetCode 热题 100

目录 哈希 1. 两数之和 49. 字母异位词分组 128. 最长连续序列 双指针 283. 移动零 链表 2. 两数相加 哈希 1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数…

2026/8/25 20:55:07
一体化全域底盘赛道升温,本土供应链的机会在哪儿?

一体化全域底盘赛道升温,本土供应链的机会在哪儿?

高阶智驾的规模化普及,正在倒逼底盘走向一体化协同。高工智能汽车研究院监测数据显示:2026年1-6月,中国市场(不含进出口)乘用车前装标配NOA车型交付290.82万辆,同比增长51.23%。随着智能驾驶能力持续提升&a…

2026/8/25 20:55:07
从 0 到 1:跨境电商 AI 翻译工具的技术方案全拆解(LLM + 本地化 + 合规)

从 0 到 1:跨境电商 AI 翻译工具的技术方案全拆解(LLM + 本地化 + 合规)

从 0 到 1:跨境电商 AI 翻译工具的技术方案全拆解(LLM 本地化 合规)正文 一、为什么做这个 先说结论:通用翻译是红海,但"懂电商规则的本地化"还是蓝海。 跨境卖家的真实痛点不是"翻译不通顺"——…

2026/8/25 20:50:07