二叉树两个结点的最近相同父节点怎么求,有什么算法

 我来答
Soucula
推荐于2017-09-16 · TA获得超过3091个赞
知道小有建树答主
回答量:744
采纳率:93%
帮助的人:69.8万
展开全部
1. 面对这样的场景,选择父亲孩子结构的方式组建二叉树就很容易了。
2. 如果是普通的左右结点结构组建的二叉树,那就遍历吧。
int GetFather(TreeNode *root, TreeNode *a, TreeNode *b)
{
int num = 0;
if (root == NULL)
return 0;
else
{
num = GetFather(TreeNode->left, a, b) + GetFather(TreeNode->right, a, b);
if (num == 2)
{
printf("The father is %d", root->data);
return 0;
}
}
if (root == a || root == b)
return 1 + num;
else
return num;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式