python-3.x - Python:二叉树防止空索引
问题描述
我不断得到一个空节点级别,代码创建一个索引来跟踪我的总和。我现在似乎能够阻止它的引入。任何人都可以帮助发现修复吗?我知道还有其他解决方案,但理想情况下我想看看我是否能让这个解决方案工作。
las 迭代创建 aone_idx[4] = 0
但没有节点。由于所有级别的总和为负,因此 0 将是最大值。但我不应该有 4 级总和。
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
root = TreeNode(
-100,
left=TreeNode(
-200,
left=TreeNode(-20, left=None, right=None),
right=TreeNode(-5, left=None, right=None)
),
right=TreeNode(
-300,
left=TreeNode(-10, left=None, right=None),
right=None
)
)
def maxLevelSum(root):
import operator
queue = [(1, root)]
one_idx = {1: root.val}
while queue:
i, l = queue.pop(0)
i += 1
if i not in one_idx:
one_idx[i] = 0
if l.left is not None:
one_idx[i] += l.left.val
queue.append((i, l.left))
if l.right is not None:
one_idx[i] += l.right.val
queue.append((i, l.right))
return max(one_idx.items(), key=operator.itemgetter(1))[0]
解决方案
推荐阅读
- json - 更改 localhost:8080 的内容
- ios - MVVM - 使用闭包将 ViewModel 与 DataSource 绑定:需要捕获列表吗?
- localization - 在多站点/多语言设置中实现不同的默认语言
- cloud - 我可以将 ram 从我的服务器共享到连接的 PC
- ios - ARKit 2.0 错误?“初始化 VIO 时出错”
- clojure - 在 Localhost for HTTP-Kit 上托管时进行 AJAX 调用
- java - Ignite Semaphore 不支持高流量?
- rust - 为什么特质不在范围内?
- raku - “Cro Endpoint HTTP”应该在哪里定义?
- powerbi - Power BI - 4 周增加/减少百分比