对于任意一颗二叉树,编写代码实现求二叉树中所有结点
时间: 2024-08-23 20:02:53 浏览: 36
编写算法交换二叉树中所有结点的左右子树.doc
5星 · 资源好评率100%
为了求解二叉树中所有节点的数量,你可以采用递归的方式来遍历整棵树。这里是一个简单的 Python 示例,用于计算给定二叉树中节点的总数:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def count_nodes(root: TreeNode) -> int:
if root is None: # 如果根节点为空,返回0
return 0
else:
return 1 + count_nodes(root.left) + count_nodes(root.right) # 递归计算左子树和右子树的节点数,并加1(当前节点)
# 使用示例
# 创建一个二叉树
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
# 计算节点数
node_count = count_nodes(root)
print(f"二叉树中有 {node_count} 个节点。")
阅读全文