📌  相关文章
📜  在清空给定二叉树的每一步中需要删除的叶节点数(1)

📅  最后修改于: 2023-12-03 14:51:30.270000             🧑  作者: Mango

清空二叉树中的叶节点

在二叉树的操作中,清空二叉树的操作相对比较简单,只需要删除二叉树的所有节点就可以了。但是,如果我们要清空一棵二叉树,而且只要求删除叶节点,那么该如何处理呢?

算法描述

以递归的方式遍历二叉树,如果当前节点为叶节点,那么就删除该节点。

代码实现
def removeLeaves(root):
    if not root:
        return None
    if not root.left and not root.right:
        return None
    root.left = removeLeaves(root.left)
    root.right = removeLeaves(root.right)
    return root
示例

假设我们要清空下面这棵二叉树:

      1
   /     \
  2       3
 / \     / \
4   5   6   7

我们只需要运行上述代码,就可以得到下面这棵二叉树:

      1
   /     \
  2       3

因为我们只删除了其中的叶节点。

总结

以上是清空二叉树中的叶节点的算法介绍和示例代码。