cx
我有3个问题: 1. getHeight()函数如何工作? 2.为什么要使用getHeight()函数:
class Node:
def __init__(self,data):
self.right=self.left=None
self.data = data
class Solution:
def insert(self,root,data):
if root==None:
return Node(data)
else:
if data<=root.data:
cur=self.insert(root.left,data)
root.left=cur
else:
cur=self.insert(root.right,data)
root.right=cur
return root
def getHeight(self,root):
#Write your code here
if not root:
return -1
else:
return max(self.getHeight(root.right), self.getHeight(root.left)) + 1
T=int(input())
myTree=Solution()
root=None
for i in range(T):
data=int(input())
root=myTree.insert(root,data)
height=myTree.getHeight(root)
print(height)
为什么返回-1,而不是0
3。并在此代码中:
if not root:
return -1
我认为结果的最大值将为+ 1,但这不是真的,它将为* 1,我尝试了2,将为* 2,我尝试了3,它将为*3。你能解释一下吗?
答案 0 :(得分:0)
您的问题的某些部分尚不完全清楚,但我认为这些答案可以解决您的问题。我非常愿意进行编辑以提高清晰度:
getHeight()
是一个递归函数,因此按其本身进行调用
沿着树前进。
http://pages.cs.wisc.edu/~calvin/cs110/RECURSION.html 第3部分的示例
A
B C
D E
所以我们的分数是2