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

代码随想录算法训练营第23期day21| 235. 二叉搜索树的最近公共祖先 、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点

目录

一、(leetcode 235)二叉搜索树的最近公共祖先

二、(leetcode 701)二叉搜索树中的插入操作

三、(leetcode 450)删除二叉搜索树中的节点


一、(leetcode 235)二叉搜索树的最近公共祖先

力扣题目链接

状态:没有思路,还是236的套路。

利用二叉搜索树的特性进行分析,不需要对中间节点进行操作,所以没办法区分前/中/后序遍历。

class Solution {
public:TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {if(root->val > p->val && root->val > q->val){return lowestCommonAncestor(root->left, p, q);}else if(root->val < p->val && root->val < q->val){return lowestCommonAncestor(root->right, p, q);}else return root;}
};

二、(leetcode 701)二叉搜索树中的插入操作

力扣题目链接

class Solution {
public:TreeNode* insertIntoBST(TreeNode* root, int val) {if(root == nullptr){TreeNode* node = new TreeNode(val);return node;}if(root->val > val) root->left = insertIntoBST(root->left, val);if(root->val < val) root->right = insertIntoBST(root->right, val);return root;}
};

三、(leetcode 450)删除二叉搜索树中的节点

力扣题目链接

状态:比上一题复杂得多

介绍一个二叉树的通用方法

class Solution {
public:TreeNode* deleteNode(TreeNode* root, int key) {// 二叉树通用法if(root == nullptr) return root;if(root->val == key){if(root->right == nullptr){return root->left;}TreeNode* cur = root->right;while(cur->left){cur = cur->left;}swap(root->val, cur->val);}root->left = deleteNode(root->left, key);root->right = deleteNode(root->right, key);return root;}
};
http://www.lryc.cn/news/193888.html

相关文章:

  • 小程序页面路由传参的方法?
  • Ubuntu下安装Python
  • 宝塔使用腾讯COS存储实现自动备份服务器网站数据图文教程
  • npm命令介绍
  • openGauss学习笔记-100 openGauss 数据库管理-管理数据库安全-客户端接入之用SSL进行安全的TCP/IP连接
  • ESP8266 Node Mcu开发板连接WIFI并上报数据到MQTT服务器——物联网应用开发
  • 苍穹外卖(八) 使用WebSocket协议完成来单提醒及客户催单功能
  • 网站如何应对网络流量攻击
  • 设置Json序列化时字段的顺序
  • AcWing5277. 三元组
  • 【LeetCode热题100】--121.买卖股票的最佳时机
  • 高精度计算
  • KMP 算法 + 详细笔记
  • 基于主动移频法与AFD孤岛检测的单相并网逆变器matlab仿真
  • MIT 6.S081 Operating System/Fall 2020 macOS搭建risc-v与xv6开发调试环境
  • JMeter定时器
  • zookeeper应用场景(二)
  • Android webView加载高德地图定位不显示问题
  • 94. 二叉树的中序遍历(递归+迭代)
  • UGUI交互组件Slider
  • JAVA经典百题之按位或运算符 `|的使用
  • C多线程编程- 近似求解π
  • YOLOV7量化第二步: 模型标定
  • 前端-uniapp-开发指南
  • Java集合类ArrayList的应用-杨辉三角的前n行
  • C语言-函数
  • 蓝桥杯 枚举算法 (c++)
  • Wordpress自定义小工具logo调用设置(可视化)
  • 面试常考数据结构:红黑树、B树、B+树各自适用的场景
  • Paddle GPU版本需要安装CUDA、CUDNN