题目:
题解:
- 思路:利用树的后序遍历(左右根),由下至上、由左至右的删除值为target的叶子节点
代码如下:
class Solution {
public:
TreeNode* removeLeafNodes(TreeNode* root, int target) {
return dfs(root,target);
}
//利用树的后序遍历(左右根),由下至上、由左至右的删除值为target的叶子节点
TreeNode* dfs(TreeNode* &root,int target){
if(!root)return nullptr;
root->left=dfs(root->left,target);
root->right=dfs(root->right,target);
if(!root->left&&!root->right&&root->val==target)return nullptr;
return root;
}
};