😎풀이

  1. minDif: 최소 차잇값
  2. prevNode: 이전 탐색한 노드
  3. inOrder: 중위 순회
    3-1. 트리를 중위순회 하며, 두 노드간의 차잇값 중 최소를 기록한다.
    3-2. prevNode에 현재 node를 입력한다.
  4. 최소 차잇값을 반환한다.
function getMinimumDifference(root: TreeNode | null): number {
    if(!root) return 0
    let minDif = Infinity;
    let prevNode: TreeNode;
    function inOrder(node: TreeNode) {
        if(node.left) inOrder(node.left)
        if(prevNode) minDif = Math.min(minDif, node.val - prevNode.val)
        prevNode = node
        if(node.right) inOrder(node.right)
    }
    inOrder(root)
    return minDif
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글