建立一个二叉树,输出结点个数
时间: 2024-01-13 10:05:45 浏览: 22
好的,下面是建立二叉树并输出结点个数的 Python 代码示例:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def build_tree(node_list):
if not node_list:
return None
root = TreeNode(node_list[0])
queue = [root]
i = 1
while queue:
node = queue.pop(0)
if i < len(node_list) and node_list[i] is not None:
node.left = TreeNode(node_list[i])
queue.append(node.left)
i += 1
if i < len(node_list) and node_list[i] is not None:
node.right = TreeNode(node_list[i])
queue.append(node.right)
i += 1
return root
def count_nodes(root):
if not root:
return 0
return 1 + count_nodes(root.left) + count_nodes(root.right)
# 测试
node_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
root = build_tree(node_list)
print(count_nodes(root)) # 输出 15
```
注:以上代码中,`build_tree` 函数用于根据输入的节点列表建立二叉树,`count_nodes` 函数用于计算二叉树的结点个数。在测试中,我们先建立了一个满二叉树,然后调用 `count_nodes` 函数输出结点个数。