寻找二叉树两个结点的最低共同父节点
寻找二叉树两个结点的最低共同父节点
题目:二叉树的结点的定义如下:
struct TreeNode {int m_nValue;TreeNode *m_pLeft;TreeNode *m_pRight; };
输入二叉树中的两个结点,输出这两个结点在数中最低的共同父结点。
/寻找二叉树两个结点的最低共同父节点
TreeNode *FindFirstCommonParentNode(TreeNode *pRoot, TreeNode *pNodeOne, TreeNode *pNodeTwo)
{if (NULL == pRoot){return NULL;}if (pRoot == pNodeOne || pRoot == pNodeTwo){return pRoot;}TreeNode *pLeft = FindFirstCommonParentNode(pRoot->m_pLeft, pNodeOne, pNodeTwo);TreeNode *pRight = FindFirstCommonParentNode(pRoot->m_pRight, pNodeOne, pNodeTwo);if (NULL == pLeft) //1、左子树没有找到任何一个结点,则第一个公共父节点必定在右子树,而且找到第一个结点就是最低共同父节点{return pRight;}else if (NULL == pRight) //2、右子树没有找到任何一个结点,则第一个公共父节点必定在左子树,而且找到第一个结点就是最低共同父节点{return pLeft;}else //3、分别在结点的左右子树找到,则此节点必为第一个公共父节点{return pRoot;}
}
寻找二叉树两个结点的最低共同父节点相关推荐
- 程序员面试100题之五:二叉树两个结点的最低共同父结点
题目:二叉树的结点定义如下: struct TreeNode { int m_nvalue; TreeNode* m_pLeft; TreeNode* m_pRight; }; 输入二叉树中的两个结点 ...
- 二叉树两个结点的最低公共父结点 【微软面试100题 第七十五题】
题目要求: 输入二叉树中的两个结点,输出这两个及诶单在数中最低的共同父结点. 题目分析: 还有一种情况:如果输入的两个结点中有一个或两个结点不在二叉树中,则输出没有共同父结点: 因此,可以在程序中定义 ...
- 寻找树中两个结点的最低公共祖先
寻找树中两个结点的最低公共祖先 Q:在树中寻找两个结点的最低公共祖先,是什么意思呢? A:树是由根节点衍生左右孩子继续衍生左右孩子的左右孩子.所以呢树中的两个结点是一定拥有最低公共祖先(这两个结点Q: ...
- 程序员面试题精选100题(48)-二叉树两结点的最低共同父结点[数据结构]
题目:二叉树的结点定义如下: struct TreeNode { int m_nvalue; TreeNode* m_pLeft; TreeNode* m_pRight; }; 输入二叉树中的两个结点 ...
- 树中两个结点的最低公共祖先
题目描述: 给定一棵树,同时给出树中的两个结点,求它们的最低公共祖先. 输入: 输入可能包含多个测试样例. 对于每个测试案例,输入的第一行为一个数n(0<n<1000),代表测试样例的个数 ...
- 50:树中两个结点的最低公共祖先
题目:求树中两个结点的最低公共祖先,此树不是二叉树,并且没有指向父节点的指针. 树的结点定义 private static class TreeNode {int val;List<TreeNo ...
- 剑指offer之求二叉树中两个节点的最低共同父节点
1 问题 求二叉树中俩个节点的最低共同父节点,比如二叉树如下 42 61 3 5 7 比如节点1和3两个节点的最低共同父节点是2,节点3和5两个节点的最低共同父节点是4,节点5和6两个节点的最低共同父 ...
- 求一颗二叉树中两个节点的最低公共父节点
题目:求一棵二叉树中两个节点的最低公共父节点 思路:递归 和 非递归 public static TreeNode getLastCommonParentRec(TreeNode root, Tree ...
- 二叉树两个结点的第一个共同祖先
题目:设计并实现一个算法,找出二叉树中某两个结点的第一个共同祖先.不得将额外的结点存储在另外的数据结构中.注意,这不一定是二叉查找树. 解法:如果两个结点都在树中,且其中一个为根结点,那么直接返回根结 ...
最新文章
- springboot 读取配置文件内容的几种方式
- python学习笔记:easygui的简单示例
- 【Matlab 图像】HSV 空间图片分离器
- pin controller driver代码分析
- 关于std:auto_ptr
- Android Studio 1.1的安装和遇到的坑
- 交换机VLAN、 TRUNK 、VTP 配置
- 联想m100显示耗材_RTX3070显卡搭档高性能显示器,畅玩精美游戏大作!
- 查看java运行时参数_查看JVM运行时参数
- 压缩包安装_SPSS 21 下载(内附压缩包及安装过程)
- 网游源码完整服务端_【每日源码】微人事是一个前后端分离的人力资源管理系统,项目采用SpringBoot+Vue开发。...
- 基本MVC2模式创建新闻网站
- 作业二在校大学生零食消费调查问卷
- 免积分下载与PDF转换
- android关联发送程序,Android Handler机制之Message的发送与取出
- 人工智能 —— 归结演绎推理
- Python 报错Process finished with exit code -1073740791 (0xC0000409)解决方法
- iphone13 Pro的运行内存是6gb
- Excel合并单元格快捷键
- android模拟电源按键
热门文章
- 向“下”出发,陪玩江湖风云再起?
- JavaScript 知识碎片[四] for ···in 和 for ···of 的区别与基本使用
- 【聚类分析】机器学习中聚类分析的简单详细案例,小白也能做!
- 深度学习——参数量计算
- 10 款你最需要的经典免费软件!
- maven基础01环境环境搭建及配置部署
- Bootstrap学习总结
- 祝我们的祖国73周岁快乐!
- 【Oracle 11g中 ORA-28000 账号被锁定的解决办法】
- 提示计算机丢失d3dx9_43.dll,Win7电脑运行游戏经常提示“丢失d3dx943.dll”怎么办?...