# 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 classSolution: defmaxDepth(self, root: Optional[TreeNode]) -> int: ans = 0 ifnot root: return ans queue = collections.deque() queue.append((root, 1)) while queue: ans += 1 for i inrange(len(queue)): p, _ = queue.popleft() if p.left: queue.append((p.left, 1)) if p.right: queue.append((p.right, 1)) return ans
深度优先遍历
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# 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 classSolution: defmaxDepth(self, root: Optional[TreeNode]) -> int: ans = 0 ifnot root: return ans left_level = self.maxDepth(root.left) right_level = self.maxDepth(root.right) returnmax(left_level, right_level)+1