题目描述:
给定二叉树根结点 root ,此外树的每个结点的值要么是 0,要么是 1。
返回移除了所有不包含 1 的子树的原二叉树。
( 节点 X 的子树为 X 本身,以及所有 X 的后代。)
链接:https://leetcode-cn.com/problems/binary-tree-pruning
思路:只要当前节点为叶子节点,并且该节点左子树为空,右子树为空,当前节点值为0,则返回空。
代码:
class Solution {
public:
TreeNode* pruneTree(TreeNode* root) {
if(root == nullptr)
return nullptr;
root->left = pruneTree(root->left);
root->right = pruneTree(root->right);
if(root->val == 0 && root->left == nullptr && root->right == nullptr)
return nullptr;
return root;
}
};