Skip to content

Instantly share code, notes, and snippets.

@Elerphore
Created December 30, 2022 20:50
Show Gist options
  • Save Elerphore/f7c6db557d39e5e3b03cf4ce47da0b51 to your computer and use it in GitHub Desktop.
Save Elerphore/f7c6db557d39e5e3b03cf4ce47da0b51 to your computer and use it in GitHub Desktop.
data class TreeNode(val value: Int, var left: TreeNode? = null, var right: TreeNode? = null)
fun main() {
val root: TreeNode = initBSTree()
val isBST: Boolean = isBST(root, Int.MIN_VALUE, Int.MAX_VALUE)
println(isBST)
}
fun isBST(root: TreeNode?, min: Int, max: Int): Boolean {
if(root == null) return true;
return (root.value >= min &&
root.value < max &&
isBST(root.left, min, root.value) &&
isBST(root.right, root.value, max));
}
fun initBSTree(): TreeNode {
val rootNode = TreeNode(40)
val node20 = TreeNode(20)
val node10 = TreeNode(10)
val node30 = TreeNode(30)
val node60 = TreeNode(60)
val node50 = TreeNode(50)
val node70 = TreeNode(70)
val node5 = TreeNode(5)
val node55 = TreeNode(55)
rootNode.left = node20
rootNode.right = node60
node20.left = node10
node20.right = node30
node60.left = node50
node60.right = node70
node10.left = node5
node50.right = node55
return rootNode
}
fun createBinaryTree(): TreeNode {
val rootNode = TreeNode(40)
val node20 = TreeNode(20)
val node10 = TreeNode(10)
val node30 = TreeNode(30)
val node60 = TreeNode(60)
val node50 = TreeNode(50)
val node70 = TreeNode(70)
val node5 = TreeNode(5)
val node55 = TreeNode(55)
rootNode.left = node20
rootNode.right = node10
node20.left = node60
node20.right = node30
node60.left = node50
node60.right = node70
node10.left = node5
node50.right = node55
return rootNode
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment