LeetCode - Validate Binary Search Tree
5826 ワード
問題の説明
二元検索ツリー.
一致しているかどうかをチェックします.
トラブルシューティング方法
うん.lower、upperで解決すればいいと思っていたので、RecursionかQで解決すればいいと思います.
ええ、でも、ちょっとテストボックスが古いです.
わざと範囲をIntegerに設定します.MIN_VALUE, Integer.MAX VALUEを加えて、2行で解決できるコードを4行にします.
ソースコード
import java.util.*;
class Solution {
public boolean isValidBST(TreeNode root) {
return isValidCheck(root,null,null);
}
public boolean isValidCheck(TreeNode root, Integer lower, Integer upper){
if(root==null) return true;
if(root.left!=null&&root.left.val>=root.val) return false;
if(root.left!=null&&lower!=null&&root.left.val<=lower) return false;
if(root.right!=null&&root.right.val<=root.val) return false;
if(root.right!=null&&upper!=null&&root.right.val>=upper) return false;
return isValidCheck(root.left,lower,root.val) && isValidCheck(root.right,root.val,upper);
}
}
結果
そうですね.
Reference
この問題について(LeetCode - Validate Binary Search Tree), 我々は、より多くの情報をここで見つけました https://velog.io/@ehdrms2034/LeetCode-Validate-Binary-Search-Treeテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol