设计一个算法,求二叉树第k层的结点个数的代码
时间: 2023-12-17 07:22:25 浏览: 110
shu2.rar_K._malloc.h
以下是求二叉树第k层结点个数的算法实现:
```python
# 定义二叉树结点类
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
# 求二叉树第k层的结点个数
def get_node_num_k(root, k):
if not root or k <= 0:
return 0
if k == 1:
return 1
else:
return get_node_num_k(root.left, k - 1) + get_node_num_k(root.right, k - 1)
```
其中,`root`表示二叉树的根节点,`k`表示要求的层数。如果`root`为空或者`k`小于等于0,则返回0;如果`k`等于1,则返回1;否则递归求解左子树和右子树的第`k-1`层结点个数,然后将左右子树的结果相加即为第`k`层的结点个数。
阅读全文