이진 트리 감안할 때, 그것은 균형 이진 트리의 여부를 판단한다;
균형 이진 트리가 왼쪽 노드가 루트 노드 미만이라고합니다 오른쪽보다 루트 노드 이하,
우리는 균형 이진 트리 탐색 순서에 있었다, 결과가 오름차순입니다, 우리의 문제 해결 방안이 또 다른 방법입니다
다음과 같이 코드입니다 :
공공 부울 isValidBST합니다 (TreeNode를 루트) { 스택 <TreeNode를> 스택 = 새 새 스택 <> (); 긴 TMP = Long.MIN_VALUE로부터의, 그동안은 (stack.isEmpty이 () 루트 ||! = null의 {) 그동안 ! (= 루트를 널 (null) ) { stack.push (루트) 루트 = root.left; } 에 IF (! stack.isEmpty ()) { 루트 = stack.pop (); // 현재 노드는 스택보다 큰 값인지를 판단 노드 IF (root.val <= TMP) { 돌아 거짓 ; } TMP = root.val * 1L ; 루트 = root.right; } } 반환 사실 ; }