当前位置: 首页 > news >正文

精品网站建设价格易云巢做网站公司

精品网站建设价格,易云巢做网站公司,河南省建设厅村镇建设处网站,贵州遵义知名网站建设二叉查找树#xff08;BST#xff09;#xff1a;根节点大于等于左子树所有节点#xff0c;小于等于右子树所有节点。 二叉查找树中序遍历有序。 669. 修剪二叉搜索树 给你二叉搜索树的根节点 root #xff0c;同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树BST根节点大于等于左子树所有节点小于等于右子树所有节点。 二叉查找树中序遍历有序。 669. 修剪二叉搜索树 给你二叉搜索树的根节点 root 同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即如果没有被移除原有的父代子代关系都应当保留)。 可以证明存在 唯一的答案 。 所以结果应当返回修剪好的二叉搜索树的新的根节点。注意根节点可能会根据给定的边界发生改变。 示例 1 输入root [1,0,2], low 1, high 2 输出[1,null,2] 示例 2 输入root [3,0,4,null,2,null,null,1], low 1, high 3 输出[3,2,null,1] 提示 树中节点数在范围 [ 1 , 1 0 4 ] [1, 10^4] [1,104] 内 0 N o d e . v a l 1 0 4 0 Node.val 10^4 0Node.val104树中每个节点的值都是 唯一 的题目数据保证输入是一棵有效的二叉搜索树 0 l o w h i g h 1 0 4 0 low high 10^4 0lowhigh104 思路 法一递归 任意一个节点的val对给定的范围只有三种可能等于、小于、大于 等于也就在给定的范围内则保留再分别判断该节点的左子树和右子树小于当该节点小于给定范围的最小值时要将该节点以及该节点的左子树都修剪掉让该节点的父节点的左指针指向该节点的右子树再进行判断大于当该节点大于给定范围的最大值时要将该节点以及该节点的右子树都修剪掉让该节点的父节点的右指针指向该节点的左子树再进行判断 法二迭代 该题自然能够使用「迭代」进行求解起始先从给定的 root 进行出发找到第一个满足值符合 [low,high]范围的节点该节点为最后要返回的真正的根节点 root。 然后分别处理root节点的左子树和右子树 这里对左子树只需修剪掉小于所给范围的节点 若节点大于给定范围的最小值时这该节点的右子树一定在范围内不修剪继续判断其左子树若节点小于给定范围的最小值时要将该节点以及该节点的左子树都修剪掉让该节点的父节点的左指针指向该节点的右子树再进行判断。 而对右子树只需修剪掉大于所给范围的节点; 若节点小于给定范围的最大值时这该节点的左子树一定在范围内不修剪继续判断其左子树若节点大于给定范围的最大值时要将该节点以及该节点的右子树都修剪掉让该节点的父节点的右指针指向该节点的左子树再进行判断。 代码(Java、C) 法一递归 Java /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/ class Solution {public TreeNode trimBST(TreeNode root, int low, int high) {if(root null) return null;if(root.val low root.val high){root.left trimBST(root.left, low, high);root.right trimBST(root.right, low, high);}else if(root.val low){return trimBST(root.right, low, high);}else if(root.val high){return trimBST(root.left, low, high);}return root;} }C /*** 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* trimBST(TreeNode* root, int low, int high) {if(root nullptr) return nullptr;if(root-val low root-val high){root-left trimBST(root-left, low, high);root-right trimBST(root-right, low, high);}else if(root-val low){return trimBST(root-right, low, high);}else if(root-val high){return trimBST(root-left, low, high);}return root;} };法二迭代 Java class Solution {public TreeNode trimBST(TreeNode root, int low, int high) {while(root ! null (root.val low || root.val high)){root root.val low ? root.right : root.left;}if(root null) return null;TreeNode tem root;while(tem.left ! null){if(tem.left.val low){tem tem.left;}else{tem.left tem.left.right;}}tem root;while(tem.right ! null){if(tem.right.val high){tem tem.right;}else{tem.right tem.right.left;}}return root;} }C class Solution { public:TreeNode* trimBST(TreeNode* root, int low, int high) {while(root ! nullptr (root-val low || root-val high)){root root-val low ? root-right : root-left;}if(root nullptr) return nullptr;TreeNode* tem root;while(tem-left ! nullptr){if(tem-left-val low){tem tem-left;}else{tem-left tem-left-right;}}tem root;while(tem-right ! nullptr){if(tem-right-val high){tem tem-right;}else{tem-right tem-right-left;}}return root;} };运行结果 复杂度分析 时间复杂度 O ( n ) O(n) O(n)其中 n 为二叉树的结点数目。空间复杂度 O ( 1 ) O(1) O(1)。迭代只需要常数级空间而递归的话递归栈最坏情况下需要 O ( n ) O(n) O(n) 的空间。 题目来源力扣。 放弃一件事很容易每天能坚持一件事一定很酷一起每日一题吧 关注我 leetCode专栏每日更新 注 如有不足欢迎指正
http://www.laogonggong.com/news/128213.html

相关文章:

  • 网站大数据怎么做公众号编辑器怎么使用
  • 营销网站建设专业服务公司网上购物网站设计
  • 网站建设的英文翻译2022年企业所得税税率
  • 上海专业seo公司西安seo网站公司
  • 广西建设职业技术学院官方网站潍坊市奎文建设局网站
  • 快速建站属于saas吗做兼职的网站有哪些工作内容
  • 提高景区网站建设广告商网站建设
  • 网站如何做死链接提交专业做公司宣传网站
  • 西部数码网站管理助手安装天蝎网站建设公司
  • 新网站建设总结目录 首页 wordpress
  • 设计一个简单的网页佛山网站优化如何
  • 网站制作教程 pdf下载中级经济师考试公告
  • 网站建设分为哪些内容大数据网站
  • 武隆网站建设哪家好商标名字大全
  • 惠州市建设局网站wordpress 科技联盟
  • 网站导航栏条源码项目经理资格证
  • 遂宁北京网站建设如何对网站的图片做cdn
  • 成都网站建设 lkcms网站一级域名申请
  • 如何向雅虎提交网站友联建设集团官方网站
  • 电子商务网站数据库建设网站的关键词在哪设置
  • 企业专业建站宁夏住房和城乡建设厅网站办事窗口
  • 网站是用什么软件做的南京网络优化培训
  • 网站建设高级 上海中铁建设集团有限公司电话号码
  • 深圳做兼职的网站设计品牌加盟最好的网站建设
  • 坂田网站建设方案怎么做一个网站页面
  • 网站开发专业分数线贵阳制作网站
  • 最简单的网站建设语音网站关键词搜索
  • 网站系统开发毕业设计临沂做过网站的公司
  • 做邀请函的网站汕头市网站建设
  • 虎丘苏州网站建设正规建筑工程网站