Binary Tree Paths
EasyStringBacktrackingTreeDepth-First SearchBinary Tree
Solution
import { TreeNode } from '@algorithm/lib';
export function binaryTreePaths(root: TreeNode | null): string[] {
if (!root) {
return [];
}
const answer: string[] = [];
function dfs(node: TreeNode, paths: number[]) {
if (!node.left && !node.right) {
answer.push(paths.join('->'));
return;
}
if (node.left) {
paths.push(node.left.val);
dfs(node.left, paths);
paths.pop();
}
if (node.right) {
paths.push(node.right.val);
dfs(node.right, paths);
paths.pop();
}
}
dfs(root, [root.val]);
return answer;
}