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

day-23 代码随想录算法训练营(19)part09

669.修剪二叉搜索树

思路一:根据二叉搜索树的特性进行中间值与去区间值判断,有三种情况:1.在区间中,所以左右子树都可能在区间中; 2.在区间外面的左侧,必然只有右子树可能存在区间中;3.在区间外面的右侧,必然只有左子树可能存在区间中思路二:优化代码,不考虑在区间中的,直接考虑不在区间中的;1.当处于区间左侧,只需从右子节点开始递归查找;2.当处于区间右侧,只需从左子节点开始递归查找。

class Solution {
public:TreeNode* trimBST(TreeNode* root, int low, int high) {//思路:首先考虑当前中间节点有三种情况,在low左边,在high右边if(root==nullptr) return nullptr;//中间节点在区间左边if(root->val<low){return trimBST(root->right,low,high);}//中间节点在区间右边if(root->val>high)return trimBST(root->left,low,high);//中间节点在区间内root->left=trimBST(root->left,low,high);root->right=trimBST(root->right,low,high);return root;}
};

108.将有序数组转化位二叉搜索树

思路一:由于要高度平衡,有序数组中,每次都选择中间值作为中间节点,然后在左右分成两个区间递归去构造二叉搜索树。

538.把二叉搜索树转换为累加树

思路:根据右中左的遍历顺序,把二叉树的节点值累加并赋值

http://www.lryc.cn/news/130331.html

相关文章:

  • JVM编译优化
  • vue浏览器插件安装-各种问题
  • maven工具-maven的使用-镜像仓库、本地仓、IDEA使用maven
  • Mac鼠标增强工具Smooze Pro
  • 数据结构-单链表(C语言简单实现)
  • .netcore grpc身份验证和授权
  • 分布式 - 服务器Nginx:一小时入门系列之负载均衡
  • Linux学习之基本指令二
  • 神经网络基础-神经网络补充概念-41-梯度的数值逼近
  • tornado在模板中遍历二维数组
  • 前端-初始化Vue3+TypeScript
  • 龙蜥社区安全联盟(OASA)正式成立,启明星辰、绿盟、360 等 23 家厂商重磅加入
  • Flask-SQLAlchemy
  • 大数据bug-sqoop(二:sqoop同步mysql数据到hive进行字段限制。)
  • Windows小记
  • centos安装elasticsearch7.9
  • 221、仿真-基于51单片机的智能啤酒发酵罐多点温度压力水位排水加水检测报警系统设计(程序+Proteus仿真+配套资料等)
  • C语言好题解析(三)
  • OpenCV之remap的使用
  • leetcode 377. 组合总和 Ⅳ
  • C++笔记之花括号和圆括号初始化区别,列表初始化和初始化列表区别
  • git报错Add correct host key
  • Kvm配置ovs网桥
  • AraNet:面向阿拉伯社交媒体的新深度学习工具包
  • P13-CNN学习1.3-ResNet(神之一手~)
  • 【C++】set/multiset容器
  • docker拉取镜像时报错Error response from daemon: Head ““no basic auth credentials
  • Redis消息传递:发布订阅模式详解
  • 最强自动化测试框架Playwright(36)- 句柄
  • 推荐一个绘图平台(可替代Visio)