​LeetCode链接​

DFS

# 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 max(self.maxDepth(root.left), self.maxDepth(root.right)) + 1

BFS

# 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
dq = collections.deque()
dq.append(root)
depth = 0
while dq:
depth += 1
for _ in range(len(dq)):
tmp = dq.popleft()
if tmp.left:
dq.append(tmp.left)
if tmp.right:
dq.append(tmp.right)
return depth