怎么理解递归求二叉树高度
递归总是绕晕,不知道该怎么去思考,像求二叉树的高度程序代码:
int BTHeight(BTNode *bt) { int lchilddep, rchilddep; if (bt == NULL)return 0; else { lchilddep = BTHeight(bt->lchild); rchilddep = BTHeight(bt->rchild); return (lchilddep > rchilddep) ? (lchilddep + 1) : (rchilddep + 1); } }
其中BTNode 是以二叉链存储结构定义的结点类型,含有两个指针 *lchild和*rchild分别指向左右子树
怎么理解这个递归算法?求解!