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

卓越亚马逊网站建设目的凡科建站代理平台

卓越亚马逊网站建设目的,凡科建站代理平台,腾讯营销平台,小程序appidday19 周日放假 今天依旧是二叉树环节 力扣题部分: 235. 二叉搜索树的最近公共祖先 题目链接:. - 力扣#xff08;LeetCode#xff09; 题面: 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为#xff1a;“对于有根树 T …day19 周日放假 今天依旧是二叉树环节 力扣题部分: 235. 二叉搜索树的最近公共祖先 题目链接:. - 力扣LeetCode 题面: 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为“对于有根树 T 的两个结点 p、q最近公共祖先表示为一个结点 x满足 x 是 p、q 的祖先且 x 的深度尽可能大一个节点也可以是它自己的祖先。” 思路: 和day18的二叉树公共祖先不同的是这一次我们可以利用二叉搜索树的特点遍历一个路径就够了其他的倒没什么太大区别。 具体思路细节内容可以看day18的最后一题 236. 二叉树的最近公共祖先这里就不重复了。 传送门(day18):代码随想录算法训练营第十八天二叉树 六-CSDN博客 代码实现: class Solution { public:TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {if(p - val q - val) swap(q, p);if(root - val p - val root - val q - val) return root;if(root - val p - val root - right) return lowestCommonAncestor(root - right, p, q);if(root - val q - val root - left) return lowestCommonAncestor(root - left, p, q);return nullptr;} }; 701.二叉搜索树中的插入操作 题目链接:. - 力扣LeetCode 题面: 给定二叉搜索树BST的根节点 root 和要插入树中的值 value 将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 新值和原始二叉搜索树中的任意节点值都不同。 注意可能存在多种有效的插入方式只要树在插入后仍保持为二叉搜索树即可。 你可以返回 任意有效的结果 。 思路:         按照最简单的想法一条路径走到底最后创造一个叶子节点挂树上就好了可以不重构二叉树就不要重构二叉树了不然就很麻烦就像下一道题。 代码实现: class Solution { public:TreeNode* insertIntoBST(TreeNode* root, int val) {if(!root){TreeNode* newnode new TreeNode(val);return newnode;}if(root - val val) root - left insertIntoBST(root - left, val);if(root - val val) root - right insertIntoBST(root - right, val);return root;} }; 450.删除二叉搜索树中的节点 题目链接:. - 力扣LeetCode 题面: 给定一个二叉搜索树的根节点 root 和一个值 key删除二叉搜索树中的 key 对应的节点并保证二叉搜索树的性质不变。返回二叉搜索树有可能被更新的根节点的引用。 一般来说删除节点可分为两个步骤 首先找到需要删除的节点如果找到了删除它。 思路:         我们知道插入可以插入在叶子节点也可以不插入在叶子节点而删除就没得选择所有情况都要考虑那就得按需要删除的结点情况分类讨论了: 1.没找到。         解决办法遍历到空节点直接返回。 2.找到了在叶子节点上。         解决办法删除节点并返回空节点。 3.找到了左边有子树右边没有。         解决办法像链表一样要删除的节点的父节点指向要删除节点的左节点相当于绕过要删除的节点然后记得删除释放空间。 4.找到了右边右子树左边没有。         解决办法和第三条类似父节点指向删除节点的右节点。 5.找到了左右两边都有子树。         解决办法最难的部分。先讲操作将删除节点的左子树头结点左孩子放到删除节点的右子树的最左面节点的左孩子上返回删除节点右孩子为新的根节点。 我们知道二叉搜索树要保证中序遍历递增删除节点的左子树全部比右子树小该节点一删右节点像之前一样一补上去整个左子树就悬空了由于左子树都比右子树小所以只能把悬空的左子树根节点放在右节点最小的节点左侧这样就可以让中序遍历仍旧是递增的了。如果还有点懵可以尝试画个图自己手动删除节点理解一下 代码实现: class Solution { public:TreeNode* deleteNode(TreeNode* root, int key) {if (root nullptr) return root; // 第一种情况if (root-val key) {// 第二种情况if (root-left nullptr root-right nullptr) {delete root;return nullptr;}// 第三种情况else if (root-left nullptr) {auto retNode root-right;delete root;return retNode;}// 第四种情况else if (root-right nullptr) {auto retNode root-left;delete root;return retNode;}// 第五种情况else {TreeNode* cur root-right; // 找右子树最左面的节点while(cur-left ! nullptr) {cur cur-left;}cur-left root-left;TreeNode* tmp root;root root-right;delete tmp;return root;}}if (root-val key) root-left deleteNode(root-left, key);if (root-val key) root-right deleteNode(root-right, key);return root;} };
http://www.hkea.cn/news/14192660/

相关文章:

  • 旅游网站模块报价wordpress去除谷歌
  • wordpress建站难不难菏泽定制网站建设推广
  • 最流行的网站设计风格关键词查找
  • 建设网站存在的问题免费的个人网站注册
  • 成都专业网站设计公司网站源码可以做淘宝客
  • php做网站后台教程常见的网络服务有哪些
  • 如何制作手机购物网站学习怎么做网站
  • 建设企业网站的哪家好建设工程网站贴吧
  • 网站设计制作一条龙多少钱小程序开发实例教程
  • 南宁优化网站网络服务jsp做的网站如何查看
  • 贵州建设厅报名登录网站微信网站建设费用计入什么科目
  • 长沙 网站设计 公司价格wordpress 修改首页
  • 电子商务网站建设效果青海网站建设哪个最好
  • 长春网站排名推广搬瓦工怎么做网站
  • 企业营销型网站字体怎么网wordpress
  • 长沙网站制作方法宁波网站排名
  • 无极网络邢台做网站优化
  • 四川住房和城乡建设厅网站不能进入华为sdn企业解决方案
  • 公司网站制作导航营销网
  • 北京市建设工程造价管理处 网站河北网站seo外包
  • 网站建设有什么专业术语广州网络推广公司有哪些
  • 做宣传网站大概多少钱青岛公司网站建设价格低
  • 做网站前怎么写文档35互联网站建设
  • 下载网站 源码dw个人网页制作教程学生
  • 男女做暖暖网站wordpress分类随机文章
  • 宁德网站制作公司企业邮箱忘记密码怎么找回
  • 珍佰农 商城网站建设企业所得税核定征收率
  • 微网站搭建教程wordpress qq 微信登录
  • 北京网站seo排名优化友情链接网站被降权
  • 陕西交通建设集团网站体检常见的网站空间服务商