计算二叉树的最大深度

1. LeetCode 104. Maximum Depth of Binary Tree

2. 描述:

给定一个二叉树,计算其最大深度。

3. 解决方案 1:深度优先搜索

int maxDepth(TreeNode* root) {
    if(root == nullptr){
        return 0;
    }
    return max(maxDepth(root->left),maxDepth(root->right)) + 1;
}

4. 解决方案 2:

int maxDepth(TreeNode* root) {
    if(root == nullptr){
        return 0;
    }
    
    queue<TreeNode*> nodes;
    int res = 0;
    nodes.push(root);
    
    while(!nodes.empty()){
        res++;
        //此处不能直接用 i < nodes.size(),因为nodes.size()会增大
        for(int i = 0, n = nodes.size(); i < n; i++){
            TreeNode* node = nodes.front();
            nodes.pop();
            
            if(node->left != nullptr){
                nodes.push(node->left);
            }
            if(node->right != nullptr){
                nodes.push(node->right);
            }
        }
    }
    return res;
}
Table of Contents