牛客/LeetCode——二叉树的剪枝
程序员文章站
2022-04-26 22:12:36
...
二叉树的剪枝
给定二叉树根结点 root ,此外树的每个结点的值要么是 0,要么是 1。
返回移除了所有不包含 1 的子树的原二叉树。
class Solution {
public:
TreeNode* pruneTree(TreeNode* root) {
if(root==NULL)
return root;
_pruneTree(root);
return root;
}
void _pruneTree(TreeNode* root) {
if(root==NULL)
return;
//如果它的左子树满足全为0——即没有含1的节点,将其左孩子置为空
if(_ZeroTree(root->left))
root->left=NULL;
//如果它的右子树满足全为0——将其右孩子置为空
if(_ZeroTree(root->right))
root->right=NULL;
_pruneTree(root->left);
_pruneTree(root->right);
}
//全为0的子树
bool _ZeroTree(TreeNode* root)
{
if(root==NULL)
return true;
if(root->val==1)
return false;
else
return _ZeroTree(root->left)&&_ZeroTree(root->right);
}
};
上一篇: 起个简单枯燥的标题:找出连续差相同的数字
下一篇: ISP流程(matlab)
推荐阅读
-
牛客网中矩阵中的路径
-
11.11最简单赚钱攻略,怎么做一个牛逼的新手淘宝客!
-
Java~利用二分查找完成牛客经典算法题--查找旋转数组的最小数字
-
牛客网在线判题出现“请检查是否存在数组越界等非法访问情况”的情况
-
【MySQL牛客】12.获取所有部门中当前员工当前薪水最高的相关信息
-
leetcode 113 剑指offer 面试题34. 二叉树中和为某一值的路径(python3)
-
牛客 小米 找出数组中只出现1次的两个数A,B 位运算经典题
-
LeetCode第958题 二叉树的完全性检验
-
Leetcode刷题记录——958. 二叉树的完全性检验
-
leetcode 第 958 题:二叉树的完全性检验(C++)