Binary Tree Paths

Given a binary tree, return all root-to-leaf paths.

  • Time: O(N)
  • Space: O(1)
public List<String> binaryTreePaths(TreeNode root) {
    List<String> ret = new ArrayList<>();
    dfs(ret, "", root);
    return ret;
}

private void dfs(List<String> ret, String path, TreeNode node) {
    if (node == null) {
        return;
    }
    path += node.val;
    if (node.left == null && node.right == null) {
        ret.add(path);
    }
    dfs(ret, path + "->", node.left);
    dfs(ret, path + "->", node.right);
}

results matching ""

    No results matching ""