查找两个任意节点的最近祖先(2)

//查找节点p的高度,注意与单纯只计算树的高度不同
int GetHeight(BiTNode* root, BiTNode * p, int h = 1)
{
 if (!root) return 0;
 if (p == root->lchild || p == root->rchild) return h + 1;
 return  GetHeight(root->lchild, p, h+1) == 0 ?
   GetHeight(root->rchild, p, h+1) : GetHeight(root->lchild, p, h+1);
}

上述测试使用的先序序列为

abc###de##fg###
 
对应的二叉树如下:
 
                a
 
            /      \
 
          b          d
          /          /    \
 
      c          e      f 
 
                          /
 
                      g
 
结果如下:

仅此记录,供以后忘记了查阅,同时也希望和大家分享。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3b3007621e34b92aa293e3e53d77d163.html