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

news/2024/11/13 9:23:31/文章来源:https://www.cnblogs.com/VickyWu/p/18537835

235. 二叉搜索树的最近公共祖先

文章链接:https://programmercarl.com/0235.二叉搜索树的最近公共祖先.html
题目链接:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/

思路:利用二叉搜索树的特性,当第一次遇到在[p,q]区间或[q,p]区间的元素的节点,则该节点一定是p和q的最近公共祖先
此题为只搜索一条边而不是搜索一整个树的题,可以和前面的题进行区分。所以不用考虑前中后序,只需要从root开始进行判断,从而确定是向左遍历还是向右遍历。

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);if(root->val<p->val&&root->val<q->val) return lowestCommonAncestor(root->right,p,q);return root;}
};

701.二叉搜索树中的插入操作

文章链接:https://programmercarl.com/0701.二叉搜索树中的插入操作.html
题目链接:https://leetcode.cn/problems/insert-into-a-binary-search-tree/description/

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

450.删除二叉搜索树中的节点

文章链接:https://programmercarl.com/0450.删除二叉搜索树中的节点.html
题目链接:https://leetcode.cn/problems/delete-node-in-a-bst/description/

class Solution {
public:TreeNode* deleteNode(TreeNode* root, int key) {//终止条件if(root==NULL) return NULL;  //root为空的情况if(root->val==key){ //root不为空的情况if(root->left==NULL&&root->right==NULL){  //root为叶子节点的情况delete root;return NULL;}if(root->left!=NULL&&root->right==NULL){  //root左子树不空,右子树空TreeNode* node=root->left;delete root;return node;}else if(root->left==NULL&&root->right!=NULL){  //root左子树空,右子树不空TreeNode* node=root->right;delete root;return node;}else{  //root左右子树都不为空TreeNode* cur=root->right;while(cur->left!=NULL) cur=cur->left;cur->left=root->left;TreeNode* node=root->right;delete root;return node;}}//递归if(root->val>key) root->left=deleteNode(root->left,key);else if(root->val<key) root->right=deleteNode(root->right,key);return root;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/830597.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

水体颜色智能识别系统

水体颜色智能识别系统基于AI人工智能机器视觉分析识别技术,水体颜色智能识别系统通过现场监控摄像头,实现对河道、湖面及排水口水体颜色的智能检测与识别。这一系统能够代替人眼,对水体颜色进行24小时不间断的监测,有效克服了传统人工巡检的局限性,提高了监测的效率和准确…

仪表图像识别算法

仪表图像识别算法基于AI的机器视觉分析识别技术,通过训练深度学习模型,使得摄像头能够像人一样“看”懂仪表盘上的数据。这些现场监控摄像头能够实时捕捉仪表盘的图像,利用AI算法自动分析并识别出仪表的示数或开关状态。这种技术不仅能够在任何时间、任何地点进行自动读表,…

溺水识别摄像头防溺水系统

溺水识别摄像头防溺水系统采用了先进的AI算法,溺水识别摄像头防溺水系统能够准确识别出人体的姿态和动作。当有人员在泳池中挣扎、失去平衡或是长时间不动时,系统会立即判断这可能是一起溺水事件,并立即发出语音报警,提醒周围的人进行救援。同时,系统还会将提示消息推送给…

学期:2024-2025-1 学号:20241303 《计算机基础与程序设计》第七周学习总结

作业信息这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第七周作业这个作业的目标 <写上具体方面>计算机科学概论(第七版)第8章 并完成云班课测试,《C…

2024-2025-1 20241327 《计算机基础与程序设计》第七周学习总结

作业信息 |2024-2025-1-计算机基础与程序设计)| |-- |- |2024-2025-1计算机基础与程序设计第七周作业)| |快速浏览一遍教材计算机科学概论(第七版),课本每章提出至少一个自己不懂的或最想解决的问题并在期末回答这些问题 |作业正文|https://www.cnblogs.com/shr060414/p/18…

PbootCMS 网站转移后无法打开报错提示“No input file specified”怎么办

问题:PbootCMS 网站转移后无法打开,提示“No input file specified”。 解决方案:删除 .user.ini 文件:检查根目录中是否存在 .user.ini 文件,如有则删除。 重启 Web 服务器:重启 Apache 或 Nginx 服务。 检查 PHP 配置:确保 cgi.fix_pathinfo 设置为 1。 检查 Nginx 配…

PbootCMS网站后台图片上传提示:“上传失败:存储目录创建失败!”

后台图片上传提示:“上传失败:存储目录创建失败!”问题描述:图片上传失败,提示存储目录创建失败。 解决方案:给根目录下的 static 文件夹增加写入权限,一般设置为 755 或 777,推荐 755 权限设置。chmod -R 755 /path/to/your/project/static扫码添加技术【解决问题】专…

PbootCMS基本调用标签大全

首页、栏目页、内页的标题、关键词、描述:首页:<title>{pboot:sitetitle}</title> 栏目页:<title>{pboot:if({sort:title}==){pboot:pagetitle}{else}{sort:title}{/pboot:if}</title> 内页:<title>{content:title}-{pboot:sitetitle}</t…

HTTP 错误 500.22 - Internal Server Error

IIS程序池的.net FrameWork版本不是经典模式解决方法:将应用程序池的托管管道模式更改为“经典”模式:打开IIS管理器。 选择“应用程序池”。 选择对应的应用程序池,点击右侧的“高级设置”。 将“托管管道模式”设置为“经典”。扫码添加技术【解决问题】专注中小企业网站建…

宝塔安装ssl后站点打不开

当在宝塔面板上安装SSL证书后,如果站点无法访问,可以尝试以下几个步骤来排查和解决问题:检查SSL证书是否正确安装登录宝塔面板。 进入“网站”管理界面,选择对应的站点。 点击“设置”,进入“SSL”选项卡,确认证书已经正确安装。检查域名解析确保域名正确解析到服务器的I…

宝塔linux面板php7.0安装不上

在宝塔 Linux 面板上安装 PHP 7.0 时,可能会遇到一些问题。以下是一些常见的解决方法和步骤,帮助你成功安装 PHP 7.0。 1. 检查系统环境 确保你的服务器满足安装 PHP 7.0 的要求。登录宝塔面板:打开浏览器,访问你的宝塔面板地址,例如 http://your_server_ip:8888。 使用管…

五子棋软件简介及其用法

本文按照 五子棋对弈平台、 五子棋单机版软件、五子棋界面+引擎 三种模式的顺序介绍。 五子棋对弈平台 人机对弈 http://wap.lltskb.com/shfw/game/wzq/index.html?eqid=a0cd9efb0000c3ca00000006645b4932 天天象棋里的欢乐五子棋 五子棋单机版软件 gomocalc网页版五子棋 …