求二叉树中度为1的结点
时间: 2024-05-07 17:19:06 浏览: 87
计算二叉树的结点个数
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 find_degree_one_nodes(root):
res = []
if not root:
return res
if root.left and not root.right:
res.append(root)
elif root.right and not root.left:
res.append(root)
res += find_degree_one_nodes(root.left)
res += find_degree_one_nodes(root.right)
return res
```
其中,`TreeNode` 表示二叉树的结点,`find_degree_one_nodes` 函数接受二叉树的根结点 `root`,返回一个包含所有度为1的结点的列表。
在函数中,首先判断当前结点是否存在,并检查其左右子结点是否存在。若只有一个子结点,则将该结点加入结果集中。然后递归遍历左右子树,并将结果集合并返回。
阅读全文