😎풀이

  1. Binary Search Tree 특성 상, 부모 노드의 왼쪽 노드는 더 작고 오른쪽 노드는 더 크기 때문에 중위 순회를 통해 노드들의 값을 오름차 순으로 정렬한다
  2. 정렬된 배열을 탐색하며 노드 간 최소 거리의 차를 확인한다
  3. 최소 거리의 차를 반환한다.
function minDiffInBST(root: TreeNode | null): number {
    const values = []
    let minDiff = Infinity
    function inOrder(node: TreeNode | null) {
        if(!node) return
        inOrder(node.left)
        values.push(node.val)
        inOrder(node.right)
    }
    inOrder(root)
    for(let i = 1; i < values.length; i++) {
        const curGap = Math.abs(values[i] - values[i - 1])
        minDiff = Math.min(minDiff, curGap)
    }
    return minDiff
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글