Print directory tree with indentation
UberSoftware Engineer · Technical ScreenLast updated
This question evaluates proficiency with representing and traversing hierarchical directory trees and producing depth-based formatted output, testing concepts such as tree traversal, recursion or iterative depth tracking, and string formatting for indentation.
You are given a root directory of a filesystem represented as a tree. Each node is either a directory (can have children) or a file (no children). Print the directory structure starting from the root, using indentation to show depth.
Output format
- Print one node per line.
- The root is printed with no indentation.
- For each depth level below the root, prefix the name with an indentation marker (for example:
⟶). Repeating the marker indicates deeper nesting.
Example formatting (depth shown by repeated markers):
dir
⟶ subdir1
⟶ ⟶ file1.ext
⟶ ⟶ subsubdir1
⟶ subdir2
⟶ ⟶ subsubdir2
⟶ ⟶ ⟶ file2.ext
Requirements / assumptions
- You may assume the input is already a tree (no cycles).
- The children of a directory should be printed in the order they are provided.
Task
Implement a function that, given the root node, prints (or returns as a list of strings) the directory tree in the required format.
Solution walkthrough is for members
Get the full walkthrough with reference code and complexity analysis, plus Kitty Coach at 300 messages a day. Hints, the code runner and community answers stay free.