Skip to main content
LeetCode 655, Medium. Topics: Tree, Depth-First Search, Breadth-First Search, Binary Tree. View on LeetCode. Generate this problem as a practice environment: tested reference solution, 20 parametrized pytest cases, and a playground notebook:

Problem

Given the root of a binary tree, construct a 0-indexed m x n string matrix res that represents a formatted layout of the tree. The formatted layout matrix should be constructed using the following rules:
  • The height of the tree is height and the number of rows m should be equal to height + 1.
  • The number of columns n should be equal to 2^height+1^ - 1.
  • Place the root node in the middle of the top row (more formally, at location res[0][(n-1)/2]).
  • For each node that has been placed in the matrix at position res[r][c], place its left child at res[r+1][c-2^height-r-1^] and its right child at res[r+1][c+2^height-r-1^].
  • Continue this process until all the nodes in the tree have been placed.
  • Any empty cells should contain the empty string "".
Return the constructed matrix res.

Examples

Example 1
Example 2

Constraints

  • The number of nodes in the tree is in the range [1, 2^10].
  • -99 <= Node.val <= 99
  • The depth of the tree will be in the range [1, 10].

Solution

Reference implementation from solution.py on GitHub, full suite in test_solution.py:

Complexity

Tags

Last modified on September 7, 2026