Python 3.x 名称错误:名称'*';没有定义

Python 3.x 名称错误:名称'*';没有定义,python-3.x,Python 3.x,为什么此行add(root,sum,0)getsNameError:没有定义名称“add”error class Solution: def rob(root: TreeNode) -> int: sum = [0, 0] add(root, sum, 0) if sum[0] < sum[1]: return sum[1] else: return sum[0]

为什么此行
add(root,sum,0)
gets
NameError:没有定义名称“add”
error

class Solution:
    def rob(root: TreeNode) -> int:
        sum = [0, 0]
        add(root, sum, 0)
        if sum[0] < sum[1]:
            return sum[1]
        else:
            return sum[0]

    def add(node: TreeNode, sum: List[int], index: int):
        if not node:
            return
        sum[index] += node.val
        index += 1
        if index >= len(sum):
            index = 0;
        add(node.left, sum, index)
        add(node.right, sum, index)
类解决方案:
def rob(根目录:TreeNode)->int:
总和=[0,0]
加(根、和、0)
如果总和[0]<总和[1]:
返回金额[1]
其他:
返回和[0]
def add(节点:树节点,总和:列表[int],索引:int):
如果不是节点:
返回
sum[index]+=node.val
指数+=1
如果索引>=len(总和):
指数=0;
添加(node.left、sum、index)
添加(node.right、sum、index)

它们是类函数,使用
self

定义如下:
def-add(self,node:TreeNode,sum:List[int],index:int):

并使用它

self.add(node.left,sum,index)
试试这个

class Solution:
    def rob(self, root: TreeNode) -> int:
        sum = [0, 0]
        self.add(root, sum, 0)
        if sum[0] < sum[1]:
             return sum[1]
        else:
             return sum[0]

    def add(self, node: TreeNode, sum: List[int], index: int):
        if not node:
            return
        sum[index] += node.val
        index += 1
        if index >= len(sum):
            index = 0;
        self.add(node.left, sum, index)
        self.add(node.right, sum, index)
类解决方案:
def rob(self,root:TreeNode)->int:
总和=[0,0]
self.add(根、和、0)
如果总和[0]<总和[1]:
返回金额[1]
其他:
返回和[0]
def add(self,node:TreeNode,sum:List[int],index:int):
如果不是节点:
返回
sum[index]+=node.val
指数+=1
如果索引>=len(总和):
指数=0;
self.add(node.left、sum、index)
self.add(node.right、sum、index)