我是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:
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
方法。
答案 0 :(得分:1)
您可以根据插入逻辑
绘制树来手动检查答案level1 3
level2 2 5
level3 1 4 6
level4 7
如果你计算边缘,那么是,它是三,但树的高度显然是四。
您可以在基本情况下return -1
来解决措辞不佳的问题