手机做网站需要多少天,答题小程序开发教程,国外 设计师 网站,上海网页优化公司1. 题目
给你一棵以 root 为根的二叉树和一个整数 target #xff0c;请你删除所有值为 target 的 叶子节点 。
注意#xff0c;一旦删除值为 target 的叶子节点#xff0c;它的父节点就可能变成叶子节点#xff1b; 如果新叶子节点的值恰好也是 target #xff0c;那么…1. 题目
给你一棵以 root 为根的二叉树和一个整数 target 请你删除所有值为 target 的 叶子节点 。
注意一旦删除值为 target 的叶子节点它的父节点就可能变成叶子节点 如果新叶子节点的值恰好也是 target 那么这个节点也应该被删除。
也就是说你需要重复此过程直到不能继续删除。
1 target 1000
每一棵树最多有 3000 个节点。
每一个节点值的范围是 [1, 1000] 。来源力扣LeetCode 链接https://leetcode-cn.com/problems/delete-leaves-with-a-given-value 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
class Solution {
public:TreeNode* removeLeafNodes(TreeNode* root, int target) {if(!root)return NULL;TreeNode* l removeLeafNodes(root-left, target);TreeNode* r removeLeafNodes(root-right, target);if(!l)//左边节点可删空也可以root-left NULL;if(!r)//右边节点可删root-right NULL;if(!l !r root-val target)return NULL;//左右都没有且valtarget可删返回NULLelsereturn root;}
};52 ms 21.7 MB
优化下
class Solution {
public:TreeNode* removeLeafNodes(TreeNode* root, int target) {if(!root)return NULL;root-left removeLeafNodes(root-left, target);root-right removeLeafNodes(root-right, target);if(!root-left !root-right root-val target)return NULL;//左右都没有且valtarget可删返回NULLreturn root;}
};32 ms