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

ea账号注册网址seo网站课程

ea账号注册网址,seo网站课程,常见的网络营销方法有哪些,个人网站备案做商城原题链接#x1f517;#xff1a;二叉树的最近公共祖先 难度#xff1a;中等⭐️⭐️ 题目 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为#xff1a;“对于有根树 T 的两个节点 p、q#xff0c;最近公共祖先表示为一个节点…原题链接二叉树的最近公共祖先 难度中等⭐️⭐️ 题目 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为“对于有根树 T 的两个节点 p、q最近公共祖先表示为一个节点 x满足 x 是 p、q 的祖先且 x 的深度尽可能大一个节点也可以是它自己的祖先。” 示例 1 输入root [3,5,1,6,2,0,8,null,null,7,4], p 5, q 1 输出3 解释节点 5 和节点 1 的最近公共祖先是节点 3 。 示例 2 输入root [3,5,1,6,2,0,8,null,null,7,4], p 5, q 4 输出5 解释节点 5 和节点 4 的最近公共祖先是节点 5 。因为根据定义最近公共祖先节点可以为节点本身。 示例 3 输入root [1,2], p 1, q 2 输出1 提示 树中节点数目在范围 [2, 105] 内。-109 Node.val 109所有 Node.val 互不相同 。p ! qp 和 q 均存在于给定的二叉树中。 二叉树最近公共祖先 在二叉树中找到两个节点的最近公共祖先Lowest Common Ancestor, LCA是一个常见的算法问题。最近公共祖先是指在二叉树中能够同时包含两个给定节点的最低即最深的节点。以下是解决这个问题的一般步骤和考虑因素 理解问题你需要找到两个给定节点在二叉树中的LCA。 递归方法递归是解决这个问题的常用方法。你可以从根节点开始递归地搜索两个节点。 基本情况 如果当前节点为空返回空。如果当前节点等于其中一个给定节点返回当前节点。 递归搜索 在当前节点的左子树和右子树中递归地搜索两个节点。 合并结果 如果在左子树中找到了一个节点在右子树中也找到了另一个节点那么当前节点就是LCA。如果只在左子树或右子树中找到了一个节点那么LCA就是这个子树中的节点。如果两个子树都为空那么当前节点不是LCA的一部分。 实现使用递归函数实现上述逻辑。 测试确保你的解决方案可以处理各种情况包括但不限于 二叉树只有一个节点。两个节点在不同的分支上。两个节点在相同的分支上。两个节点中的一个或两个都是根节点。 优化考虑算法的时间复杂度和空间复杂度。递归方法的时间复杂度通常是O(N)其中N是树中节点的数量空间复杂度取决于树的高度最坏情况下是O(N)。 题解 解题思路 LeetCode 上的 “二叉树的最近公共祖先 III” 题目要求解决的是在二叉树中找到两个节点的最近公共祖先LCA。这个问题可以通过递归的方式来解决下面是解题的一般思路 定义问题给定两个值找到二叉树中包含这两个值的最近公共祖先。 理解二叉树二叉树是一种特殊的树形数据结构其中每个节点最多有两个子节点。 递归方法 递归函数将接收当前节点和两个值作为参数。如果当前节点为空返回空。检查当前节点是否等于两个值中的任意一个如果是返回当前节点。递归地在左子树和右子树中查找这两个值。 处理递归结果 如果左子树和右子树都为空说明当前节点的子树中没有找到两个值返回空。如果左子树和右子树都非空说明两个值分别在左右子树中当前节点就是它们的LCA返回当前节点。如果只有一个子树非空说明两个值都在一个子树中继续在该子树中查找LCA c demo #include iostream #include vectorstruct TreeNode {int val;TreeNode* left;TreeNode* right;TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} };class Solution { public:TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {// 如果当前节点为空或者等于p或q返回当前节点if (!root || root p || root q) {return root;}// 递归地在左子树和右子树中查找p和qTreeNode* left lowestCommonAncestor(root-left, p, q);TreeNode* right lowestCommonAncestor(root-right, p, q);// 如果左右子树都为空说明p和q都不在当前节点的子树中if (!left !right) {return nullptr;}// 如果左右子树中只有一个为空说明p和q都在非空的子树中if (left !right) {return left;}if (!left right) {return right;}// 如果左右子树都不为空说明p在一边q在另一边当前节点是它们的LCAreturn root;} };int main() {// 构建示例二叉树// 2// / \// 3 5// / \ \// 1 4 6TreeNode* root new TreeNode(2);root-left new TreeNode(3);root-right new TreeNode(5);root-left-left new TreeNode(1);root-left-right new TreeNode(4);root-right-right new TreeNode(6);// 创建两个节点TreeNode* p root-left-left; // 值为1的节点TreeNode* q root-right-right; // 值为6的节点// 创建Solution对象并调用函数Solution solution;TreeNode* lca solution.lowestCommonAncestor(root, p, q);// 打印结果if (lca) {std::cout LCA of p-val and q-val is lca-val std::endl;}else {std::cout No common ancestor found. std::endl;}// 清理内存delete root-left-left;delete root-left-right;delete root-right-right;delete root-left;delete root-right;delete root;return 0; }输出结果 LCA of 1 and 6 is 2
http://www.pierceye.com/news/435348/

相关文章:

  • 什么样企业需要网站建设网络规划毕业设计
  • 广东制作公司网站和谐校园网站建设
  • 找潍坊做网站的h5用什么软件做的
  • 南宁网站推广费用0505网页制作与网站建设
  • 2345电视剧网站免费电子营业执照
  • 河北省沧州建设厅网站怎样保存网站资料 做证据
  • 网站同时做竞价和优化可以吗做网站游戏推广赚钱吗
  • 台州建站模板搭建上海远程教育网站设计与开发公司
  • 网站如何做淘客类似58同城分类信息网站开发
  • 网站源码文件安装教程苏州网站建设致宇
  • 免费注册域名网站知乎做网站做图电脑需要什么配置
  • 高埗做网站营销策略分析包括哪些内容
  • wordpress获取站点链接网站门户
  • flashxml网站模板网站后期培训机构全国排名
  • 企业网站设计网站页面设计中为什么要有优先级排列
  • 暗网是什么网站滨江区网站开发公司
  • 南京网站排名优化费用株洲58同城网站建设电话
  • 电子商务网站建设与管理理解上海网站推广企业
  • 设计师网站pintsetseo短视频网页入口引流免费
  • 个人如何注册微信公众号怎么创建网站优化的意义
  • 网站换空间要重新备案吗百度人工电话
  • 做网站要注意哪些问题网站用什么工具做
  • 在福州的网站制作公司滨海新网站建设
  • 帝国网站地图插件泰兴企业网站建设
  • wordpress布置网站教程用dw做简单图片网站
  • 网页制作模板左右结构百度seo关键词优化方案
  • 长沙设备建站按效果付费wordpress可视化编辑器插件
  • 软件开发与网站开发硬件开发语言
  • 开封做网站睿艺美官方网站建设的必要
  • 自适应网站制作简创网络南联网站建设