rootBST(이진 검색 트리)가 주어 지면 트리에 있는 두 개의 다른 노드 값 간의 최소 절대 차이를 반환합니다 .
중위로드를 주면 저장되어있는 앞 로드와 뒤로드의 차의 절대값을 구해볼까?
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int val) {
this.val = val;
}
}
private int minDiff = Integer.MAX_VALUE;
private TreeNode prevNode = null;
왼쪽로드와 오른쪽 로드를 재귀함수를 통해 탐색한다.
f (node == null) {
return;
}
로드가 없으면 돌려보내주고
inorderTraversal(node.left);
제귀함수를통해 왼쪽 탐색
if (prevNode != null) {
minDiff = Math.min(minDiff, node.val - prevNode.val);
}
최솟값 검색
prevNode = node;
초기화
inorderTraversal(node.right);
오른쪽 탐색