题目描述
给定一个二叉树,这个二叉树的节点只有0或者1,请返回所有不包含1的子树的原二叉树。
示例1:
输入:root = [1,0,0,0,1]
输出:[1,null,0,null,1]解释:橙色的0是需要被删除的节点,删除完成后得到右边的节点
解题思路
这道题直接使用深度优先搜索,即:找到这棵树的左节点和右节点,判断如果节点没有后续的节点了,说明是叶子节点,如果是叶子节点判断当前值是否为0,如果为0,则返回空,否则返回当前的节点。
代码实现
二叉树的实现代码:
package org.example;
public class TreeNode {
public int val;
public TreeNode left;
public TreeNode right;
public TreeNode() {
}
public TreeNode(int val) {
this.val = val;
}
public TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;