https://leetcode.com/problems/binary-tree-pruning/
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
//与其找值全为0的子树,我们可以不断的移除值为0的叶结点,全都移除后那么值全为0的子树也就都被移除了。
//后序访问
class Solution {
public:
TreeNode* pruneTree(TreeNode* root) {
if(!root) return NULL;
root->left = pruneTree(root->left);
root->right = pruneTree(root->right);
if(!root->left&&!root->right&&!root->val) return NULL;
return root;
}
};