😎풀이

  1. 깊이 우선 탐색 함수를 정의한다.
    1-1. leaf 노드가 없을 경우 현재까지의 경로를 result에 추가한다.
    1-2. leaf 노드가 있을 경우 현재 경로에 이정표를 추가한다.(->)
    1-3. 자식 노드가 있을 경우 현재 노드에 값을 더해 재귀적으로 탐색한다.
  2. 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
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글