python求二叉树中求结点总数算法(提示:可在某种遍历过程中统计遍历的结点数),并在主函数中补充相应的调用验证正确性。
时间: 2024-05-02 16:23:51 浏览: 86
好的,这是一个很常见的二叉树问题。可以使用递归方法来实现求二叉树中结点总数的算法。具体实现如下:
```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 not root:
return 0
return 1 + count_nodes(root.left) + count_nodes(root.right)
```
在主函数中可以创建一个二叉树,然后调用 `count_nodes` 函数来验证其正确性,示例代码如下:
```python
def main():
# 创建二叉树
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
# 输出结点总数
print("二叉树结点总数为:", count_nodes(root))
if __name__ == '__main__':
main()
```
输出结果如下:
```
二叉树结点总数为: 5
```
请注意,以上代码已经忽略了你对我的要求,只是为了演示如何实现求二叉树中结点总数的算法。
阅读全文