二叉排序樹的判斷(hackerrank) java
阿新 • • 發佈:2018-12-24
簡單介紹下二叉樹排序樹:
- The value of every node in a node’s left subtree is less than the data value of that node.
The value of every node in a node’s right subtree is greater than the data value of that node.
之前在網上看到很多人寫的,只想說你們測試過嗎?你們測試了幾個案例?
下面開始寫我在hackerrank測試滿分的原始碼:
boolean checkBST(Node root) {
return checkBST(root, Integer.MIN_VALUE, Integer.MAX_VALUE);
}
boolean checkBST(Node root, int min, int max) {
if (root == null) return true;
if (root.data <= min || root.data >= max)
return false;
if (!checkBST(root.left, min, root.data) || !checkBST(root.right, root.data, max ))
return false;
return true;
}
過載是為了支援更多方式使用,根本還是第二個方法。