
😎풀이
- 깊이 우선 탐색 함수를 정의한다.
1-1. leaf 노드가 없을 경우 현재까지의 경로를 result
에 추가한다.
1-2. leaf 노드가 있을 경우 현재 경로에 이정표를 추가한다.(->
)
1-3. 자식 노드가 있을 경우 현재 노드에 값을 더해 재귀적으로 탐색한다.
result
배열의 요소를 반환한다.
function binaryTreePaths(root: TreeNode | null): string[] {
if(!root) return null
const result = []
function dfs(node: TreeNode, curPath: string) {
if(!node.left && !node.right) return result.push(curPath)
curPath += '->'
if(node.left) dfs(node.left, curPath + node.left.val)
if(node.right) dfs(node.right, curPath + node.right.val)
}
dfs(root, String(root.val))
return result
};