通过万岁!!!
- 题目:给你一个二叉树,然后对其进行剪枝,如果下面的节点都没有1了,那么就直接删掉。树的节点的val只会是0和1。
- 思路:就是深度优先遍历,做分支有,那么不用管,如果没有,则直接将做分支设为null。然后判断右分支,右分支也是一样。最后如果左边是null、右边是null,并且自己是0,则return false,否则return true。
- 思路:深度优先
java代码
class Solution {
public TreeNode pruneTree(TreeNode root) {
if (haveChildTree(root)) {
return root;
} else {
return null;
}
}
public boolean haveChildTree(TreeNode root) {
if (root == null) {
return false;
}
if (!haveChildTree(root.left)) {
root.left = null;
}
if (!haveChildTree(root.right)) {
root.right = null;
}
if (root.left == null && root.right == null && root.val == 0) {
return false;
} else {
return true;
}
}
}
- 总结:题目比较简单,其实二叉树的题目都很简单的。



