【数据结构】 耻辱*1 如何求二叉树的深度

 

【思考】求二叉树的深度,可能遇到的情况有

(1)如果一颗树只有一个节点,它的深度是1;

(2)如果根节点只有左子树而没有右子树,那么二叉树的深度应该是其左子树的深度加1;

(3)如果根节点只有右子树而没有左子树,那么二叉树的深度应该是其右树的深度加1;

(4)如果根节点既有左子树又有右子树,那么二叉树的深度应该是其左右子树的深度较大值加1;

 

程序实现:

int treeDepth(BiTree root){
    if(root==NULL){
        return 0;
    }
    int nLeft=treeDepth(root->lchild);
    int nRight=treeDepth(root->rchild);
    return (nLeft>nRight?nLeft+1:nRight+1);
}

 

树如图:

深度确实是 5 

 

posted @ 2018-07-04 20:52  金舰  阅读(188)  评论(0编辑  收藏  举报