LeetCode系列之二叉樹最大深度求解問題 C++

問題: 給定二叉樹, 如何計算二叉樹最大深度?
算法描述如下:
如果當前節點爲空, 返回0(代表此節點下方最大節點數爲0)

如果當前節點不爲空, 返回(其左子樹和右子樹下方最大節點數中的最大值+1)


代碼如下:

/**
 * Definition for binary tree
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    int maxDepth(TreeNode *root) {
        int depth;
        int depthLeft;
        int depthRight;
        
        if(!root)
            {
            depth=0;
        }
        else{
            depthLeft=maxDepth(root->left);
            depthRight=maxDepth(root->right);
            depth=1+(depthLeft > depthRight ? depthLeft : depthRight);
        }
        return depth;
    }
};



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章