武威地区如何学习wordpress建站并掌握linux系统?
摘要:武威网站建设公司有,wordpress建站教程linux,网站登录账号密码保存,网页设计师工资一般多少钱一个月二叉树剪枝 LCR 047. 二叉树剪枝 - 力扣(LeetCode)
武威网站建设公司有,wordpress建站教程linux,网站登录账号密码保存,网页设计师工资一般多少钱一个月二叉树剪枝
LCR 047. 二叉树剪枝 - 力扣#xff08;LeetCode#xff09; 本题要求我们将全部为0的二叉树去掉#xff0c;也就是剪枝#xff0c;当我们举一个具体的例子进行模拟时#xff0c;会发现#xff0c;只关注于对其中一个子树的根节点进行剪枝#xff0c;由于我… 二叉树剪枝
LCR 047. 二叉树剪枝 - 力扣LeetCode 本题要求我们将全部为0的二叉树去掉也就是剪枝当我们举一个具体的例子进行模拟时会发现只关注于对其中一个子树的根节点进行剪枝由于我们只去掉所有节点都是0的子树所以需要先判断它的左子树是否被去掉右子树是否被去掉最后再判断根节点本身的值是否为0如果这三个条件全部满足我们需要告诉这个子树的父亲该子树被去掉了。 通过上面的分析不难发现这个递归函数的传入参数只需要一个根节点的指针并且该函数需要把剪枝的结果传给父亲所以递归函数需要一个返回值。
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
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) {delete root;root nullptr;}return root;}
}; 验证二叉搜索树
98. 验证二叉搜索树 - 力扣LeetCode 关于二叉搜索树有一个简单的性质就是二叉搜索树的中序遍历序列是有序的。所以我们可以根据这个性质来验证一个二叉树是否为二叉搜索树当然我指的并不是创建一个数组进行判断而是递归实现二叉树的中序遍历并在这个过程中去判断是否满足性质。 我们之所以要根据中序遍历序列来判断而不是简单地递归判断左节点小于根节点小于右节点是因为满足这个性质的不一定是二叉搜索树 说回正题那我们要怎么确定二叉树的中序遍历序列呢实际上我们可以定义一个全局变量prev来充当遍历的“指针”那么中序遍历过程中我们只需要满足根节点的值大于prev就能确保满足二叉搜索树的性质。 目前的思路已经能够完成这道题目了但是我们现在就相当于老老实实地把整个二叉树遍历一遍返回结果。但是只要我们发现左子树或者中间节点不符合二叉搜索树性质就可以直接返回结果了因为这注定不可能是二叉搜索树了。而这个操作其实就是剪枝。
class Solution {
public:long prev LONG_MIN;bool isValidBST(TreeNode* root) {if(root nullptr) return true;// 判断左子树是否满足二叉搜索树性质bool left isValidBST(root-left);if(!left) return false; // 剪枝// 判断当前节点是否满足性质bool cur false;if(root-val prev)cur true;if(!cur) return false; // 剪枝// 更新prev值prev root-val;// 判断右子树是否满足二叉搜索树性质bool right isValidBST(root-right);return left right cur;}
};
二叉树的所有路径
257. 二叉树的所有路径 - 力扣LeetCode 依据题意我们需要把二叉树的所有从根节点到叶子节点的路径找出来这显然就是个深度优先遍历问题dfs因为存在这样的情况遍历到左边的叶子节点后得到一个字符串后进行回溯再遍历右边的叶子节点得到另一个字符串。
