75.二叉树两个结点的最低共同父结点(树)
题目:二叉树的结点定义如下:
struct TreeNode
{
int m_nvalue;
TreeNode* m_pLeft;
TreeNode* m_pRight;
};
输入二叉树中的两个结点,输出这两个结点在数中最低的共同父结点。
分析:求数中两个结点的最低共同结点是面试中经常出现的一个问题。这个问题至少有两个变种。
思路:
看到这道题目的时候,我就想到这道题目比较麻烦。因为,我们可能会对树进行至少两次的遍历。
首先要确定一个节点是否存在在一颗树中,然后,才是遍历一棵树,然后再判断以每个节点为根的子树中是否包含给定的两个节点。
还是看何海涛大神的分析吧:http://zhedahht.blog.163.com/blog/static/25411174201081263815813/