二叉树剪枝
814. 二叉树剪枝
难度中等284
给你二叉树的根结点 root
,此外树的每个结点的值要么是 0
,要么是 1
。
返回移除了所有不包含 1
的子树的原二叉树。
节点 node
的子树为 node
本身加上所有 node
的后代。
示例 1:
1 |
|
示例 2:
1 |
|
示例 3:
1 |
|
提示:
- 树中节点的数目在范围
[1, 200]
内 Node.val
为0
或1
题解
直接利用递归的方式解决
- 先递归左子树,然后递归右子树,递归前先判断是否为空
- 递归出口是:左右子树都为空,且当前结点值为0
Java代码如下
1 |
|
- 时间复杂度:$O(n)$
- 空间复杂度:$O(n)$ -递归使用的栈
814二叉树剪枝
http://example.com/2022/07/21/leetcode每日一题/814.二叉树剪枝/