1、题目解析
2、算法解析
本题使用二叉树的后序遍历,通过递归函数将左右子树进行处理,得到处理结果后,判断左右结果以及自身的val判断是否需要剪枝。
3、代码编写
cpp
class Solution {
public:
TreeNode* pruneTree(TreeNode* root) {
if(root == nullptr)
{
return nullptr;
}
root->left = pruneTree(root->left);
root->right = pruneTree(root->right);
if(root->left == nullptr && root->right == nullptr && root->val == 0)
{
return nullptr;
}
return root;
}
};