数据结构 假设二叉树用二叉链表存储,设计一个算法,求二叉树的结点个数。 整体代码
时间: 2024-03-01 09:04:34 浏览: 92
设二叉树采用链式存储结构,试设计一个算法计算一颗给定二叉树叶子节点的数目
5星 · 资源好评率100%
下面是基于二叉链表存储结构的二叉树结点个数求解算法的代码实现:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def count_nodes(root: TreeNode) -> int:
if not root:
return 0
return 1 + count_nodes(root.left) + count_nodes(root.right)
```
上述代码定义了一个二叉树结点类 `TreeNode`,包含结点值和左右子结点的指针。然后定义了一个递归函数 `count_nodes`,用于计算二叉树的结点个数。如果当前结点为空,返回 0;否则返回 1(当前结点)加上左子树结点个数和右子树结点个数之和。
阅读全文