You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LeetCode子树平均值节点数Python代码报错AttributeError的解决方法

问题解决:AttributeError: 'list' object has no attribute 'left'

错误原因

你在本地运行时直接将列表root = [4,8,5,0,1,None,6]传入averageOfSubtree方法,但该方法要求传入的是TreeNode类的实例对象,而非列表。LeetCode平台会自动将题目给出的列表格式二叉树转换为TreeNode结构,但本地运行需要你手动实现这个转换逻辑。

修改后的完整代码

from typing import Optional, List
from collections import deque

# Definition for a binary tree node. (This is given by leetcode)
class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

class Solution(object):
    def averageOfSubtree(self, root: Optional[TreeNode]) -> int:
        ans = 0
        def traverse(node):
            if node is None:
                return (0,0)

            left = traverse(node.left)
            right = traverse(node.right)

            total = left[0] + right[0] + node.val
            count = left[1] + right[1] + 1

            if total // count == node.val:
                nonlocal ans
                ans += 1
            return (total, count)

        traverse(root)
        return ans

# 新增辅助函数:将列表转换为TreeNode结构的二叉树
def list_to_tree(arr: List[Optional[int]]) -> Optional[TreeNode]:
    if not arr:
        return None
    root = TreeNode(arr[0])
    queue = deque([root])
    index = 1
    while queue and index < len(arr):
        node = queue.popleft()
        # 处理左子节点
        if arr[index] is not None:
            node.left = TreeNode(arr[index])
            queue.append(node.left)
        index += 1
        # 处理右子节点
        if index < len(arr) and arr[index] is not None:
            node.right = TreeNode(arr[index])
            queue.append(node.right)
        index += 1
    return root

# 测试代码
root_list = [4,8,5,0,1,None,6]
root = list_to_tree(root_list)
a = Solution()
print(a.averageOfSubtree(root))

关键修改点

  • 新增list_to_tree函数:利用队列实现广度优先遍历,将列表中的元素依次转换为TreeNode节点,并构建出完整的二叉树结构。
  • 测试部分将原列表传入辅助函数,得到TreeNode类型的根节点后,再调用averageOfSubtree方法。

内容的提问来源于stack exchange,提问作者Cassie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 17:15:39