DSA Patterns (Multi-Lang)•Part 7: Binary Trees, BSTs & Traversals (53 - 64)
Diameter of Binary Tree.
In Simple Words:
At each node, the longest path passing through it is leftDepth + rightDepth. Update global max diameter while bottom-up recursion returns 1 + max(left, right).
- Time: $O(N)$ | Space: $O(H)$
Multi-Language SolutionsPython 3 • JavaScript • TypeScript • Java • C++
Switch tabs or choose Alldef diameterOfBinaryTree(root: TreeNode | None) -> int:
diameter = 0
def dfs(node):
nonlocal diameter
if not node: return 0
left = dfs(node.left)
right = dfs(node.right)
diameter = max(diameter, left + right)
return 1 + max(left, right)
dfs(root)
return diameter