构建一个二叉树的类提供添加和返回二叉树高度的方法python
时间: 2023-11-22 11:04:20 浏览: 73
好的,下面是代码实现:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
class BinaryTree:
def __init__(self):
self.root = None
def add_node(self, val):
new_node = TreeNode(val)
if self.root is None:
self.root = new_node
else:
queue = [self.root]
while queue:
node = queue.pop(0)
if node.left is None:
node.left = new_node
return
elif node.right is None:
node.right = new_node
return
else:
queue.append(node.left)
queue.append(node.right)
def get_height(self, node):
if node is None:
return 0
else:
left_height = self.get_height(node.left)
right_height = self.get_height(node.right)
return max(left_height, right_height) + 1
def height(self):
return self.get_height(self.root)
```
这里我们定义了一个 `TreeNode` 类表示二叉树的节点,包含节点的值以及左右子节点。然后定义了一个 `BinaryTree` 类表示二叉树,包含根节点和添加节点、获取二叉树高度的方法。具体实现中,我们使用了队列来层序遍历二叉树,添加新节点到最近的空位置。获取二叉树高度的方法使用递归实现,分别计算左右子树的高度,取最大值再加上1就是整个二叉树的高度。
阅读全文