递归函数:用python递归

2024-10-03 00:31:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个功能:

def depth(self):
        if self.root == None:
            return 0
        left = depth(self.left)
        right = depth(self.right)
        if left>right:
            return left+1
        else:
            return right+1

但当我运行它时,会弹出以下错误:

 File "/Users/suryakannan/Documents/Python Programs/binaryTree.py", line 60, in depth
    left = depth(self.left)
NameError: name 'depth' is not defined

那么,我应该怎么做来修复这个函数呢?你知道吗


Tags: self功能rightnonereturnifdef错误
1条回答
网友
1楼 · 发布于 2024-10-03 00:31:25

因为depth是一个实例方法,所以需要使用self引用

def depth(self):
    if self.root == None:
        return 0
    left = self.depth(self.left)
    right = self.depth(self.right)
    if left>right:
        return left+1
    else:
        return right+1

相关问题 更多 >