비교 정책 결정
중복 값을 허용할지, 같으면 왼쪽/오른쪽 어디에 둘지 먼저 정합니다.
duplicateBST 삽입, 탐색, 삭제는 모두 같은 불변식에서 출발합니다. 각 노드는 허용된 값의 범위를 갖고, 삭제에서는 successor나 predecessor를 옮긴 뒤에도 그 범위 계약이 깨지지 않아야 합니다.
중복 값을 허용할지, 같으면 왼쪽/오른쪽 어디에 둘지 먼저 정합니다.
duplicate현재 값보다 작으면 왼쪽, 크면 오른쪽으로 이동해 절반의 후보를 버립니다.
search자식 0개, 1개, 2개일 때 처리가 다르며 2개는 successor/predecessor 교체가 필요합니다.
delete정렬된 입력으로 삽입하면 높이가 N이 되어 BST가 linked list처럼 느려집니다.
height