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.

Revisions

  1. Elerphore created this gist Dec 30, 2022.
    64 changes: 64 additions & 0 deletions Bts.kt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,64 @@
    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
    }