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

创建虚拟网站做点击互联网营销师国家职业技能标准

创建虚拟网站做点击,互联网营销师国家职业技能标准,网络营销课程的心得体会,上海电子商务网站制作公司二叉搜索树的最近公共祖先 题目描述递归 剪枝代码演示: 上期经典 题目描述 难度 - 中等 LC235 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q…

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

  • 题目描述
    • 递归 + 剪枝
    • 代码演示:
  • 上期经典

题目描述

难度 - 中等
LC235 二叉搜索树的最近公共祖先

给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]

在这里插入图片描述

示例 1:
输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8
输出: 6
解释: 节点 2 和节点 8 的最近公共祖先是 6。

示例 2:
输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4
输出: 2
解释: 节点 2 和节点 4 的最近公共祖先是 2, 因为根据定义最近公共祖先节点可以为节点本身。

说明:
所有节点的值都是唯一的。
p、q 为不同节点且均存在于给定的二叉搜索树中。

在这里插入图片描述

递归 + 剪枝

搜索二叉树(Binary Search Tree)是一种树形结构,它有一个特殊的特性:对于每个节点,其左子树中所有节点的值都小于该节点的值,其右子树中所有节点的值都大于该节点的值。这种特性使得搜索效率非常高。
搜索二叉树具有以下特点:

1.每个节点最多只有两个子节点,分别称为左子节点和右子节点。
2.左子节点小于父节点,右子节点大于父节点。
3.没有重复的节点。

所以对于 BST 来说,根本不需要老老实实去遍历子树,由于 BST 左小右大的性质,将当前节点的值与val1和val2作对比即可判断当前节点是不是LCA:
假设val1 < val2,那么val1 <= root.val <= val2则说明当前节点就是LCA;若root.val比val1还小,则需要去值更大的右子树寻找LCA;若root.val比val2还大,则需要去值更小的左子树寻找最近公共祖先。

题目中说了两个节点肯定在这颗树上,因此可以省去不在的情况的判断。

代码演示:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/class Solution {TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {// 保证 val1 较小,val2 较大int val1 = Math.min(p.val, q.val);int val2 = Math.max(p.val, q.val);return find(root, val1, val2);
}// 在 BST 中寻找 val1 和 val2 的最近公共祖先节点
TreeNode find(TreeNode root, int val1, int val2) {//base case if(root == null){return null;}//当前节点值大于val2就去左子树去遍历if(root.val > val2){return find(root.left,val1,val2);}// //当前节点值小于val1就去右子树去遍历if(root.val < val1){return find(root.right,val1,val2);}//如果 val1 <= root.val <= val2 说明当前节点就是最近公共祖先return root;
}
}

上期经典

leetcode236. 二叉树的最近公共祖先

http://www.yidumall.com/news/90779.html

相关文章:

  • 东莞手机网站设计公司落实20条优化措施
  • wordpress媒体库调用桂林seo
  • 广西网站开发全国疫情最新情况
  • 合肥网站建长沙网站托管seo优化公司
  • 重庆建设工程造价信息网站国外免费源码共享网站
  • 龙岗网站建设价格百度网页版浏览器入口
  • 阜阳营销型网站建设网站统计
  • 大型网购网站开发框架行者seo
  • 深圳外贸网页设计成都关键词优化报价
  • 北京教育云平台网站建设百度账号登陆
  • 南昌网站建设模板网络公司市场营销策划方案
  • 英国T4学生签证 可以做网站吗营销模式和营销策略
  • wordpress 被黑福州网seo
  • 个人网站上线流程安卓优化大师手机版
  • 广州营销型网站建设网站推广策划方案
  • 网站访问拒绝北京自动seo
  • 大浪网站建设网页设计与网站开发
  • 路由器做网站教程微信引流推广怎么找平台
  • 靠谱网站建设公司怎么选百度seo排名规则
  • 德源网站建设网站统计数据
  • 福建省人民政府新闻我们seo
  • 创建公司网站免费seo二级目录
  • 顺的网站建设效果百度产品
  • 有多少专门做兼职的网站西安网站排名优化培训
  • 个人网站设计介绍文字创建自己的网页
  • 一键制作自己的app软件seo在线短视频发布页运营
  • 苏州市网站建设服务在线生成个人网站app
  • 知名网站建设怎么样google站长工具
  • 网站长图怎么做百度搜索官方网站
  • 最大的地方门户网站源码白云百度seo公司