求二叉树的叶子结点
时间: 2023-11-05 17:06:59 浏览: 94
输出二叉树中的叶子结点
5星 · 资源好评率100%
二叉树的叶子结点是指没有子节点的节点,可以通过遍历二叉树来找到所有的叶子节点。以下是一个递归实现的示例代码:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def get_leaves(root):
if not root:
return []
if not root.left and not root.right:
return [root.val]
return get_leaves(root.left) + get_leaves(root.right)
# 示例
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
root.right.left = TreeNode(6)
root.right.right = TreeNode(7)
print(get_leaves(root)) # 输出 [4, 5, 6, 7]
```
在这个示例中,我们定义了一个 `TreeNode` 类来表示二叉树的节点。`get_leaves` 函数接收一个二叉树的根节点作为输入,使用递归的方式遍历整个二叉树。当访问到叶子节点时,将其值加入结果列表中。最终返回结果列表,即为二叉树的所有叶子节点的值。
阅读全文