二叉树的高度获取方法(递归)
!!版权声明:本文为博主原创文章,版权归原文作者和博客园共有,谢绝任何形式的 转载!!
作者:mohist
--- 欢迎 指正---
思路:采用类似后续遍历的思想。倒着找,从下向上找;
c++实现:
结点结构:
struct node { int data; int height; node *lc; node *rc; node() : data(0) , height(0) , lc(0) , rc(0) { } };
获取树的高度:
// 返回树的高度,采用 后序遍历的方式 int get_tree_deepth(node *pnode) { if (NULL == pnode) return 0; int left_h = get_tree_deepth(pnode->lc) ; int right_h = get_tree_deepth(pnode->rc); return (left_h > right_h) ? (1 + left_h) : (1 + right_h); }
这里,我拿刚做好的平衡二叉树做示范,输出结果如下: