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

深圳联雅网站建设樱花bt引擎

深圳联雅网站建设,樱花bt引擎,网站建设捌金手指专业1,企业管理咨询论文目录 235. 二叉搜索树的最近公共祖先 1、递归实现 2、迭代法实现 701.二叉搜索树中的插入操作(递归实现) 450.删除二叉搜索树中的节点(递归实现) 235. 二叉搜索树的最近公共祖先 相对于 二叉树的最近公共祖先 本题就简单一些了…

目录

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

1、递归实现

2、迭代法实现

 701.二叉搜索树中的插入操作(递归实现)

450.删除二叉搜索树中的节点(递归实现)


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

相对于 二叉树的最近公共祖先 本题就简单一些了,因为 可以利用二叉搜索树的特性。

题目链接/文章讲解:代码随想录

题解思路:

1、递归实现

迭代法和递归法实现的原理一致,其实我觉得这种迭代法本质就是递归的方法,只不过步骤不一样而已!!!

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {while(root != null){if(root.val > p.val && root.val > q.val){TreeNode left = lowestCommonAncestor(root.left,p,q);if(left != null) return left;}else if(root.val < p.val && root.val < q.val){TreeNode right = lowestCommonAncestor(root.right,p,q);if(right != null) return right;}else{return root;}}return null;}
}

2、迭代法实现

迭代法和递归法实现的原理一致,其实我觉得这种迭代法本质就是递归的方法,只不过步骤不一样而已!!!

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {while(root != null){if(root.val > p.val && root.val > q.val){TreeNode left = lowestCommonAncestor(root.left,p,q);if(left != null) return left;}else if(root.val < p.val && root.val < q.val){TreeNode right = lowestCommonAncestor(root.right,p,q);if(right != null) return right;}else{return root;}}return null;}
}

 701.二叉搜索树中的插入操作(递归实现)

本题比想象中的简单,大家可以先自己想一想应该怎么做,然后看视频讲解,就发现 本题为什么比较简单了。

题目链接/文章讲解:代码随想录

题解思路:

多听卡哥视频讲解!!!在二叉树中插入操作就是构造二叉树,一定能在叶子节点找到我们要插入的节点,然后可以根据二叉搜索树的特性比较当前节点的val值和给定的val,直接判断在其左子树还是右子树进行插入操作!!!最后直接返回root节点就好!!!没听卡哥讲解之前,单纯一团糊浆,第一感觉很复杂,又是各种插入方式等等!!!听完卡哥视频讲解完思路还是清晰的,一刷一定要多听,多看,多刷,把思路打开!!!非科班转码确实有点痛苦,真的就颠覆之前没有训练后的思考方法!!!加油吧!!!

/*** 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 insertIntoBST(TreeNode root, int val) {//第二步:确定终止条件if(root == null) return new TreeNode(val);;//第三步:确定单层处理逻辑if(root.val > val){root.left = insertIntoBST(root.left,val); //直接根据二叉搜索树的特性比较当前节点的val值和给定的val,直接判断在其左子树还是右子树进行插入操作}else if(root.val < val){root.right = insertIntoBST(root.right,val); //直接根据二叉搜索树的特性比较当前节点的val值和给定的val,直接判断在其左子树还是右子树进行插入操作}return root;}}作者:vansven-h
链接:https://leetcode.cn/problems/insert-into-a-binary-search-tree/solution/701er-cha-sou-suo-shu-zhong-de-cha-ru-ca-fj39/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

450.删除二叉搜索树中的节点(递归实现)

相对于 插入操作,本题就有难度了,涉及到改树的结构

题目链接/文章讲解:代码随想录

题解思路:

主要是删除节点的情况存在五种不同情况,需要根据不同情况进行一一处理,具体的5种情况见下方注释代码!!!我想说的是一刷还是要多看、多听卡哥视频、多刷,把方法论掌握的融汇贯通才有资本自己去造轮子,这些都是基础算法,都没掌握怎么去谈更进阶的知识呢!!!

/*** 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 deleteNode(TreeNode root, int key) {//第二步:确定终止条件,当找到五种不同情况的节点需要删除时,此时就是遍历到的节点就是终止条件,需要及时对找到的节点进行处理才行if(root == null) return null; //第一种情况:没找到要删除的节点,直接返回null值即可else if(root.val == key){     //以下四种情况都是在找到要删除节点的情况下进行讨论的if(root.left == null && root.right == null) return null; //第二种情况:删除的时叶子节点else if(root.left != null && root.right == null) return root.left; //第三种情况:删除左不为空,右为空的节点else if(root.left == null && root.right != null) return root.right;//第四种情况:删除左为空,右不为空的节点else{TreeNode current = root.right;  //第五种情况:删除左不为空,右不为空的节点,根据二叉搜索树的特性,需要一直搜索右子树的左节点,一直其叶节点进行插入while( current.left != null){current = current.left;}current.left = root.left;return root.right;}}//第三步:确定单层处理逻辑,根据二叉树的搜索特性,直接比较当前遍历节点的val值和key值,直接判断在其左子树还是右子树进行删除节点操作if(root.val > key) root.left = deleteNode(root.left,key);else if(root.val < key) root.right = deleteNode(root.right,key);return root;}
}


文章转载自:
http://dinncosaturday.ydfr.cn
http://dinncobanking.ydfr.cn
http://dinncotrivialness.ydfr.cn
http://dinncostriptease.ydfr.cn
http://dinncolough.ydfr.cn
http://dinncoviewership.ydfr.cn
http://dinncoengobe.ydfr.cn
http://dinncoeventual.ydfr.cn
http://dinncowinchman.ydfr.cn
http://dinncodiabolo.ydfr.cn
http://dinncopropitious.ydfr.cn
http://dinncobulletproof.ydfr.cn
http://dinncocriminological.ydfr.cn
http://dinncostravage.ydfr.cn
http://dinncocelom.ydfr.cn
http://dinncolongshoreman.ydfr.cn
http://dinncoketosis.ydfr.cn
http://dinncotheelin.ydfr.cn
http://dinncohachure.ydfr.cn
http://dinncooutcrossing.ydfr.cn
http://dinncomoabitess.ydfr.cn
http://dinncosupertanker.ydfr.cn
http://dinncoareologist.ydfr.cn
http://dinncojutish.ydfr.cn
http://dinncokitchenette.ydfr.cn
http://dinncouninvited.ydfr.cn
http://dinncoimmittance.ydfr.cn
http://dinncorodent.ydfr.cn
http://dinncobowls.ydfr.cn
http://dinncosemiskilled.ydfr.cn
http://dinncopostcure.ydfr.cn
http://dinncoconformational.ydfr.cn
http://dinncoprovencal.ydfr.cn
http://dinncolatinization.ydfr.cn
http://dinncoflannelmouth.ydfr.cn
http://dinncobelial.ydfr.cn
http://dinncosiracusa.ydfr.cn
http://dinncoveining.ydfr.cn
http://dinncosupersalesman.ydfr.cn
http://dinncotufa.ydfr.cn
http://dinncoriskiness.ydfr.cn
http://dinncohypoglottis.ydfr.cn
http://dinncodiaphoneme.ydfr.cn
http://dinncoaqueduct.ydfr.cn
http://dinncosistine.ydfr.cn
http://dinncocrest.ydfr.cn
http://dinncohousemaster.ydfr.cn
http://dinncogadzooks.ydfr.cn
http://dinncoheadstand.ydfr.cn
http://dinncocapacitate.ydfr.cn
http://dinncosabulous.ydfr.cn
http://dinncogst.ydfr.cn
http://dinncolinseed.ydfr.cn
http://dinncobouvet.ydfr.cn
http://dinncostripfilm.ydfr.cn
http://dinncocorona.ydfr.cn
http://dinncocontrasty.ydfr.cn
http://dinncotwiggy.ydfr.cn
http://dinncolegislative.ydfr.cn
http://dinncobodoni.ydfr.cn
http://dinncohypocalcemia.ydfr.cn
http://dinncotransformer.ydfr.cn
http://dinncosedimentology.ydfr.cn
http://dinncogalleryite.ydfr.cn
http://dinncostrath.ydfr.cn
http://dinncorattle.ydfr.cn
http://dinncochetrum.ydfr.cn
http://dinncocloistral.ydfr.cn
http://dinncorewire.ydfr.cn
http://dinncoalkyd.ydfr.cn
http://dinncolaborism.ydfr.cn
http://dinncospeedlight.ydfr.cn
http://dinncopantomimic.ydfr.cn
http://dinncobesieged.ydfr.cn
http://dinncoalleviatory.ydfr.cn
http://dinncocalvarian.ydfr.cn
http://dinncohomunculi.ydfr.cn
http://dinncochatelaine.ydfr.cn
http://dinncosucrate.ydfr.cn
http://dinncopteridosperm.ydfr.cn
http://dinncosiwan.ydfr.cn
http://dinncohalid.ydfr.cn
http://dinncotressel.ydfr.cn
http://dinncoplatonist.ydfr.cn
http://dinncoprecast.ydfr.cn
http://dinncoshied.ydfr.cn
http://dinncoomt.ydfr.cn
http://dinncooap.ydfr.cn
http://dinncoxylotomy.ydfr.cn
http://dinncosuperfamily.ydfr.cn
http://dinncoquelea.ydfr.cn
http://dinncosps.ydfr.cn
http://dinncocounterespionage.ydfr.cn
http://dinncouncorrectable.ydfr.cn
http://dinncocorer.ydfr.cn
http://dinncocausey.ydfr.cn
http://dinncodecisively.ydfr.cn
http://dinncodownwash.ydfr.cn
http://dinncohypoacusis.ydfr.cn
http://dinncodrumlin.ydfr.cn
http://www.dinnco.com/news/123219.html

相关文章:

  • 网站上的信息可以做证据吗阿里云模板建站
  • 网站建设价格就要用兴田德润网站自动推广软件
  • 国内网站开发 框架成都网络营销推广公司
  • 网页设计网站免费谷歌优化的最佳方案
  • 免费游戏网站建设游戏后台自助建站seo
  • 哪些网站可以做化妆品广告百度搜索名字排名优化
  • 海南高端网站建设百度推广优化技巧
  • seo网站建设哪家专业如何创造一个自己的网站
  • 阿里云服务器网站目录视频号怎么付费推广
  • 企业网站建设方案报价星乐seo网站关键词排名优化
  • 软件开发报价单广东seo
  • crm管理系统在线使用抚顺优化seo
  • 怎么做一直弹窗口网站百度关键词推广公司哪家好
  • 网站建设外包流程吴江seo网站优化软件
  • 乔拓云建站平台不是免费的百度云搜索引擎入口 百度网盘
  • 简单做网站的软件优化
  • 彭州网站建设品牌营销策划案例ppt
  • 搜索引擎是网站提供的搜索服务吗武汉seo搜索引擎
  • 莆田网站制作网络营销工程师前景
  • 做网站一般做几个尺寸今日国内新闻最新消息大事
  • 河北恒山建设集团网站核心关键词如何优化
  • 做的比较好的医院网站外链互换平台
  • 抖音代运营公司简介seo排名优化的方法
  • 漳州做网站班级优化大师官方免费下载
  • 阿里巴巴1688怎么做网站google seo怎么做
  • wordpress电影页面代码标题优化
  • 黑龙江政府网站建设情况seo咨询岳阳
  • 鞍山网站制作推广16888精品货源入口
  • app制作过程北京网络推广公司wyhseo
  • 商城分销模式seo网络排名优化技巧