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

优秀设计作品的网站济南小程序开发

优秀设计作品的网站,济南小程序开发,微网站 微官网的区别吗,安平县护栏网站建设文章目录二叉搜索树的最近公共祖先二叉搜索树中的插入操作删除二叉搜索树中的节点二叉搜索树的最近公共祖先 235. 二叉搜索树的最近公共祖先 - 力扣(LeetCode) 因为二叉搜索树是有序的,第一次找到p和q中间的值,就是最近的公共祖先…

文章目录

    • 二叉搜索树的最近公共祖先
    • 二叉搜索树中的插入操作
    • 删除二叉搜索树中的节点

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

  • 235. 二叉搜索树的最近公共祖先 - 力扣(LeetCode)

    因为二叉搜索树是有序的,第一次找到p和q中间的值,就是最近的公共祖先。

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

    class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(p.val > q.val){return traverse(root , q , p);}else{return traverse(root , p , q);}}TreeNode traverse(TreeNode root , TreeNode p , TreeNode q){if(root == null) return null;if(root.val >= p.val && root.val <= q.val){return root;}TreeNode left = traverse(root.left , p , q);TreeNode right = traverse(root.right , p , q);return left == null ? right : left;}
    }
    

二叉搜索树中的插入操作

  • 701. 二叉搜索树中的插入操作 - 力扣(LeetCode)

    本题只需要找到空的节点进行插入即可。

    1. 通过函数的返回值,进行插入操作。

      class Solution {public TreeNode insertIntoBST(TreeNode root, int val) {if(root == null){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;}
      }
      
    2. 通过保存父节点的值,进行插入操作。

      class Solution {TreeNode parent;public TreeNode insertIntoBST(TreeNode root, int val) {if(root == null) return new TreeNode(val);traverse(root , val);return root;}void traverse(TreeNode root , int val){if(root == null){TreeNode node = new TreeNode(val);if(parent.val > val){parent.left = node;}else{parent.right = node;}return ;}parent = root;if(root.val > val) traverse(root.left , val);if(root.val < val) traverse(root.right , val);}
      }
      

删除二叉搜索树中的节点

  • 450. 删除二叉搜索树中的节点 - 力扣(LeetCode)
    二叉搜索树的删除涉及到五个方面,尤其要注意,当删除的节点左右都有子节点时,要将左子节点放到右子节点的最左边。这才符合二叉搜索树的原则。

    class Solution {public TreeNode deleteNode(TreeNode root, int key) {//说明删除的节点不在二叉树内,直接返回null。if(root == null) return root;//root为当前要删除的节点if(root.val == key){//2:如果左右孩子都为空,直接返回nullif(root.left == null && root.right == null){return null;}//3:删除节点的左孩子为空,右孩子不为空else if(root.left == null){//返回右孩子的根节点补位。return root.right;}//4:删除节点的左孩子不为空,右孩子为空。else if(root.right == null){return root.left;}//5:左右都不为空else if(root.left != null && root.right != null){//找到左孩子节点TreeNode left = root.left;//将左孩子节点放在删除节点的右子树最左面的左孩子上。TreeNode right_left = root.right;while(right_left.left != null){right_left = right_left.left; }right_left.left = left;return root.right;}}if(root.val > key) root.left  = deleteNode(root.left , key);if(root.val < key) root.right = deleteNode(root.right , key);//说明不是我要找的节点,返回rootreturn root;}
    }
    
http://www.yayakq.cn/news/902240/

相关文章:

  • 网站设计排版怎么做未来5年网络规划设计师
  • 潍坊 公司 网站延庆网站制作
  • 网站互动方式做素材网站存储
  • 西安网站seo哪家公司好wordpress加统计代码
  • 网站显示速度的代码互联网服务平台怎么注册
  • 郑州网站seo摄影作品可以在哪些网站投稿
  • 查询网站域名备案做企业网站赚钱吗
  • 东莞市建设安监监督网站南通专业网站建设公司
  • 做动漫网站海南最新消息新闻
  • 莆田做鞋有没有网站看手机网站开发软件下载
  • 做网站的过程中有哪些问题建一个网站需要什么手续
  • 网站是陕西省城乡建设综合服务中心品牌建设卓有成效
  • 在哪些网站可以做毕业设计WordPress支持的数据库
  • 义乌做网站多少钱商城分销怎么做
  • 网站怎样推广 优帮云建设的网站如何让用户注册
  • 建网站岑溪哪家强?产品包装设计100例
  • 成都网站建设公司高新wordpress 首页 404
  • 如何推广网站运营淘宝客网站如何备案
  • 顶尖网站建设公司网站免备案空间
  • 菠菜网站如何做推广霸州放心的网络建站
  • 仿网站 涉及侵权吗wordpress主题安装不一样
  • 虚拟主机做视频网站可以吗丹阳是哪个省
  • 可以访问国外网站的dns石家庄开发网站
  • 常州做网站公司排名嵌入式软件开发面试
  • 深圳网站建设及推广服务公司上海网页设计制作培训
  • 私自做彩票网站销售犯法么岗顶做网站公司
  • 免费网站模块哈尔滨网站制作方案
  • 网站建设 移动端 和 PC端找外国男人做老公网站
  • 北京丰台网站建设公司平台网站开发多少钱
  • 做明星粉丝网站wordpress platinum seo 插件