用按层序遍历二叉树的代码,统计树中具有度为1的结点数目。
时间: 2024-02-06 17:12:53 浏览: 71
统计二叉树的结点个数的参考程序
5星 · 资源好评率100%
以下是按层序遍历二叉树并统计度为1的节点数的代码实现:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def count_degree_1_nodes(root):
if not root:
return 0
queue = [root]
count = 0
while queue:
node = queue.pop(0)
if node.left and not node.right:
count += 1
elif not node.left and node.right:
count += 1
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
return count
```
该函数接受一个二叉树的根节点作为参数,返回树中度为1的节点数。
在函数内部,我们使用一个队列来存储每一层的节点。首先,将根节点加入队列中,并初始化度为1的节点计数器为0。然后,当队列不为空时,弹出队首节点,检查其左右子节点是否缺失。若只有左子节点或右子节点,则将度为1的节点计数器加一。最后,将子节点加入队列中,并重复以上步骤。直到队列为空,统计完所有节点的度之后,返回度为1的节点计数器的值。
阅读全文