Python 获取二叉搜索树的高度
我是Python的新手,我有一些问题。我正在使用Python 3 我对二叉搜索树使用了这个逻辑来获得它的高度:Python 获取二叉搜索树的高度,python,Python,我是Python的新手,我有一些问题。我正在使用Python 3 我对二叉搜索树使用了这个逻辑来获得它的高度: class Node: def __init__(self, data): self.right = self.left = None self.data = data class Solution: def insert(self, root, data): if root is None:
class Node:
def __init__(self, data):
self.right = self.left = None
self.data = data
class Solution:
def insert(self, root, data):
if root is None:
return Node(data)
else:
if data > root.data:
cur = self.insert(root.right, data)
root.right = cur
else:
cur = self.insert(root.left, data)
root.left = cur
return root
def getHeight(self, root):
# Write your code here
if root is None:
return 0
else:
return 1 + max(self.getHeight(root.right), self.getHeight(root.left))
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)
通过此输入:
7
3
5
2
1
4
6
7
第一个7是节点数
但我得到的是四,而不是三,在这个例子中,高度必须是三
我做错了什么
注意:我的代码仅在
getHeight
方法上。您可以根据插入逻辑绘制树来手动检查答案
level1 3
level2 2 5
level3 1 4 6
level4 7
如果您正在计算边数,那么是的,它是三个,但树的高度显然是四个
你可以通过
return-1
在基本情况下解决这个措辞拙劣的问题我认为4是正确的答案。前7是节点数。正如你在这里看到的,高度实际上是4而不是3。看:。这是问题陈述。在这里,他们要计算的是边,而不是节点。边不等于节点height@VansFannel返回-1
而不是0