104. Maximum Depth of Binary Tree
https://leetcode.com/problems/maximum-depth-of-binary-tree/
Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Note: A leaf is a node with no children.
Example:
Given binary tree
[3,9,20,null,null,15,7]
,3 / \ 9 20 / \ 15 7
return its depth = 3.
---
Intuition
F(node) = 1 + Max( F(node.left), F(node.right))
---
Time - O(n)
Space - O(h) - recursive call stack
---
Related problems
111-minimum-depth-of-binary-tree
366-find-leaves-of-binary-tree
---
Intuition
F(node) = 1 + Max( F(node.left), F(node.right))
---
Time - O(n)
Space - O(h) - recursive call stack
---
Related problems
111-minimum-depth-of-binary-tree
366-find-leaves-of-binary-tree
---
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Definition for a binary tree node. | |
* public class TreeNode { | |
* int val; | |
* TreeNode left; | |
* TreeNode right; | |
* TreeNode(int x) { val = x; } | |
* } | |
*/ | |
class Solution { | |
public int maxDepth(TreeNode root) { | |
if (root == null) { | |
return 0; | |
} | |
int lDepth = maxDepth(root.left); | |
int rDepth = maxDepth(root.right); | |
return 1 + Math.max(lDepth, rDepth); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Definition for a binary tree node. | |
# class TreeNode: | |
# def __init__(self, val=0, left=None, right=None): | |
# self.val = val | |
# self.left = left | |
# self.right = right | |
class Solution: | |
def maxDepth(self, root: Optional[TreeNode]) -> int: | |
if not root: | |
return 0 | |
return 1 + max(self.maxDepth(root.left), self.maxDepth(root.right)) |