当前位置: 首页 > 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.dnsts.com.cn/news/50621.html

相关文章:

  • 网站 视觉上wordpress和wamp
  • 深圳网站seo关键词常州快速建站模板
  • 自己做本地网站wordpress 蓝色主题
  • 如何把网站做成appwordpress 标题 拼音
  • 住房建设部投诉网站专业的外贸建站公司
  • 小企业网站建设价格房产中介网站模板
  • 海门市建设局网站国外好的网页设计
  • 江苏建安建设有限公司网站做网站要ftp信息吗
  • 你买域名我送网站国外网站做盗版
  • 安徽圣力建设集团有限公司网站建筑工程有限公司起名大全
  • 怎么创建一个网站卖东西如何对现有的网站改版
  • 公司免费网站制作怎么申请网站
  • 网上打字兼职正规网站电子商务网站建设工资
  • 科普互联网站建设长沙开发网站的公司
  • 高端网站建设页面小程序开发源码
  • 在哪个网站找学做包子安徽建设官网
  • 安化建设局网站网站建设的作用是什么
  • 官方网站找oem做洗发水厂家如何用ftp做网站
  • 个人网站制作模板图片软件设计师考试大纲
  • 沧州网站建设 熊掌号浙江软装设计公司
  • 温州网站建设服务器现在开什么网站
  • 好看网站手机版深圳做网站乐云seo费用优惠
  • 投资融资理财网站模板网站建设一秒互联
  • 珠海正规网站制作哪家好wordpress语音
  • 网站建设期末题答案濮阳网站优化公司哪家好
  • 企业对做营销型网站有什么优势网站搭建是什么专业学的
  • 郑州快速建站公司js检测网站是否能打开
  • 网站开发定制合同范本wordpress 优化插件
  • .org做商业网站做热处理工艺的网站有哪些
  • 南宁网站建设哪里好企业网站建设与推广