Opening scenario

Problem references use LC for LeetCode.

Invert a binary tree (LC 226): swap every node's left and right child and return the root. Then two follow-ups you should expect: Binary Tree Right Side View (LC 199) — return the values you'd see standing to the right of the tree, top to bottom; and Find Bottom Left Tree Value (LC 513) — return the leftmost value on the deepest level.

Nodes have val, left, and right fields. Inversion and right-side view allow an empty tree; bottom-left value assumes at least one node. Begin by deciding whether the answer depends on child subtrees or on complete levels.

Question progression

Q1 — Invert asks you to touch every node. What is the smallest correct recursion?

Question: To invert, what must happen at a single node, and how do you know the whole tree is handled?

Reasoning: At one node the job is local: swap…

In the full tutorial

  • Canonical Template
  • Complexity
  • Pattern Recognition Signals
  • Practice Set
  • Pitfalls
  • Variations
  • Closing: When to Reach for This

Glossary history

Click dotted jargon to save explanations here.