😎풀이

  1. tiltSum: 기울기의 총합
  2. dfs: 깊이 우선 탐색
    2-1. 좌측 기울기를 재귀적으로 탐색
    2-2. 우측 기울기를 재귀적으로 탐색
    2-3. 현재 기울기를 좌측 기울기와 우측 기울기를 통해 정의
    2-4. tiltSum에 현재 기울기 누적
    2-5. 탐색을 위해 현재 값과 좌, 우측 기울기를 모두 합한 값 반환
  3. root 노드를 통해 깊이 우선 탐색 실행
  4. 기울기의 총합(tiltSum) 반환
function findTilt(root: TreeNode | null): number {
    let tiltSum = 0
    function dfs(node: TreeNode | null): number {
        if(!node) return 0
        const leftTilt = dfs(node.left)
        const rightTilt = dfs(node.right)
        const curTilt = Math.abs(leftTilt - rightTilt)
        tiltSum += curTilt
        return node.val + leftTilt + rightTilt
    }
    dfs(root)
    return tiltSum
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글