这是一道企业面试中,经常会被问到的面试题目。
在网上看到一些此题的实现,其中有两种方法是比较适合编程的。本项目的源代码,请点击这里下载。
方法一:
此方法是根据二叉树的DFS查找并标记祖先,根据递归出栈的原理,找到公共祖先。
其主要代码如下:
#include <iostream>
#include <list>
#include "LinerLCA.h"
//DFS左右子树,查找pNode是否存在
/*@param pRoot 根节点
/*@param pNode 需要查
本文介绍在二叉树中寻找两个节点的最低公共祖先的两种方法:一种利用深度优先搜索(DFS)并标记祖先,另一种通过找到从根到两个节点的路径再求交点。分别分析了两种方法的思路、代码实现和优缺点。
这是一道企业面试中,经常会被问到的面试题目。
在网上看到一些此题的实现,其中有两种方法是比较适合编程的。本项目的源代码,请点击这里下载。
此方法是根据二叉树的DFS查找并标记祖先,根据递归出栈的原理,找到公共祖先。
其主要代码如下:
#include <iostream>
#include <list>
#include "LinerLCA.h"
//DFS左右子树,查找pNode是否存在
/*@param pRoot 根节点
/*@param pNode 需要查
3988
3948

被折叠的 条评论
为什么被折叠?
