Leetcode 104. Maximum Depth of Binary Tree

maximum depth of binary tree

Maximum Depth of Binary Tree : 求二叉樹的最大深度

Python

遞歸的方式遍歷二叉樹,通過計算左右子樹的最大深度來求出整棵樹的最大深度。

class Solution(object):
    def maxDepth(self, root):
        if not root :
            return 0
        return max(self.maxDepth(root.left),self.maxDepth(root.right))+1

C++

遞歸法

定義 maxDepth 函數來計算二叉樹的最大深度。如果二叉樹為空,那麼它的深度為0,我們返回0。否則,我們遞歸地計算左子樹和右子樹的最大深度。我們將它們的深度取最大值,然後再加上根節點的深度 1,即為二叉樹的最大深度。

時間複雜度:O(n)

間複雜度為 O(logn)。

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