数据结构 假设二叉树用二叉链表存储,设计一个算法,求二叉树的结点个数。
时间: 2024-02-27 16:57:47 浏览: 74
设二叉树采用链式存储结构,试设计一个算法计算一颗给定二叉树叶子节点的数目
5星 · 资源好评率100%
好的,以下是求二叉树结点个数的Python代码实现:
```python
class TreeNode:
def __init__(self, val=None, 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)
```
其中 `TreeNode` 是二叉树结点的类,包含了结点的值以及左右子节点;`count_nodes` 是求二叉树结点个数的函数,采用递归的思想,不断累加左右子树结点个数,最后加上根节点,即为整个二叉树的结点个数。
希望这个代码能够帮助您解决问题,如果您还有其他问题,请随时提出。
阅读全文