二叉樹的深度

題目:輸入一棵二元樹的根結點,求該樹的深度。

思路:
如果一棵樹只有一個結點,它的深度爲1。如果根結點只有左子樹而沒有右子樹,那麼樹的深度應該是其左子樹的深度加1;同樣如果根結點只有右子樹而沒有左子樹,那麼樹的深度應該是其右子樹的深度加1。如果既有右子樹又有左子樹呢?那該樹的深度就是其max(左子樹,右子樹深度)+1。

struct BinaryTreeNode {
    int value;
    BinaryTreeNode *left;
    BinaryTreeNode *right;
}

int getDepth(BinaryTreeNode *root){
    if(root == NULL)
        return 0;
    int leftDepth = getDepth(root->left);
    int rightDepth = getDepth(root->right);
    return leftDepth > rightDepth?leftDepth + 1:rightDepth + 1;
}
發佈了66 篇原創文章 · 獲贊 17 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章