📅  最后修改于: 2023-12-03 14:54:27.630000             🧑  作者: Mango
在二叉树中,叶节点是指没有子节点的节点。当一个节点的左右子树都为空时,它就是一个叶节点。本文将介绍如何打印出一个二叉树所有成为叶节点的节点。
我们可以使用递归的思想来实现打印二叉树所有的叶节点。具体思路如下:
最终,我们就可以得到一个包含所有叶节点的列表。
下面是使用 Python 语言实现的代码:
def print_leaves(root):
if not root:
return []
if not root.left and not root.right:
return [root.val]
res = []
if root.left:
res += print_leaves(root.left)
if root.right:
res += print_leaves(root.right)
return res
除了递归,我们还可以使用迭代的方式来实现打印二叉树所有的叶节点。具体思路如下:
最终,我们就可以得到一个包含所有叶节点的列表。
下面是使用 Python 语言实现的代码:
def print_leaves_iterative(root):
if not root:
return []
stack = [root]
res = []
while stack:
node = stack.pop()
if not node.left and not node.right:
res.append(node.val)
if node.left:
stack.append(node.left)
if node.right:
stack.append(node.right)
return res
本文介绍了两种方法来打印二叉树的所有叶节点:递归和迭代。递归方法代码简单,但对于大型二叉树会存在堆栈溢出的问题。迭代方法则不会出现这个问题。在实际应用中,可以选择根据需要使用相应的方法。