将二叉树的叶子结点按增序输出
时间: 2024-05-05 08:18:14 浏览: 14
可以使用递归的方式进行实现。先判断当前节点是否为叶子节点,如果是,将其值存储到一个容器中。然后递归遍历当前节点的左右子树,直到遍历结束。最后对容器中的值进行排序并输出。代码如下:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def output_leaves_in_order(root):
leaves = []
def helper(node):
if not node:
return
if not node.left and not node.right:
leaves.append(node.val)
helper(node.left)
helper(node.right)
helper(root)
leaves.sort()
print(leaves)
```
可以使用如下方式调用该函数:
```python
# Example:
# 5
# / \
# 3 7
# / \ / \
# 2 4 6 8
root = TreeNode(5)
root.left = TreeNode(3)
root.right = TreeNode(7)
root.left.left = TreeNode(2)
root.left.right = TreeNode(4)
root.right.left = TreeNode(6)
root.right.right = TreeNode(8)
output_leaves_in_order(root) # Output: [2, 4, 6, 8]
```