!!版權聲明:本文為博主原創文章,版權歸原文作者和博客園共有,謝絕任何形式的 轉載!!
作者: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); }
這里,我拿剛做好的平衡二叉樹做示范,輸出結果如下: