📅  最后修改于: 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
因为我们只删除了其中的叶节点。
以上是清空二叉树中的叶节点的算法介绍和示例代码。