Other solutions seem to be passing the current node value downward, while mine is concatenating it upward. Is there a difference between the TC? Also, some people said the key to the question is to understand the Big-O. Would this algo be O (n^2)? With each node being n and each concat being another n? And does string interpolation add another n to the Big-O?

```
var binaryTreePaths = function(node) {
if (node === null) return [];
let left = binaryTreePaths(node.left);
let right = binaryTreePaths(node.right);
let output = [];
if (left.length === 0 && right.length === 0) {
output.push(`${node.val}`);
} else {
output = output.concat(left.map((path) => {return `${node.val}->${path}`}));
output = output.concat(right.map((path) => {return `${node.val}->${path}`}));
}
return output;
};
```