We use cookies for site analytics. Accept to help us understand how the site is used. See our Privacy Policy for details.
An easy trees problem, graded against 6 test cases (3 of them hidden).
Recursive traversal of binary trees and BSTs - depth, validation, and path problems.
Reach for it when you see: A TreeNode input, or anything about depth, ancestry, or in-order ordering.
More Treesproblems →This is the introductory backtracking shape: build partial state on the way down, and commit it to the answer when a terminal condition is met - here, a node with no children.
Two ways to carry the path. Passing a string down means each call gets its own copy, so there is nothing to undo, and for trees of this size the copying cost is irrelevant. Passing a shared array avoids the copies but requires pushing before recursing and popping afterwards - and a missing pop is the classic backtracking bug, where later paths inherit fragments of earlier ones.
Ordering comes free from the traversal: recursing left before right yields exactly left-to-right DFS order, so no sorting is needed.
The leaf test is worth stating precisely - a node with no children at all, not a node with a missing left child. Treating a one-child node as a leaf would emit truncated paths and drop the real ones below it.
The full reference solution in every supported language stays in the editor above - reveal it there once you have had a real attempt.
Read off this problem's own test suite, so these are the cases a submission actually has to survive.
These apply to the pattern as a whole, not just this problem.