fun main(args: Array<String>) {
var root : TreeNode = TreeNode(5)
var result : TreeNode = insert(root, 7)
result = insert(result, 3).let {
insert(it,67)
insert(it,80)
insert(it,24)
}
inorderTraversal(result)
println("")
preorderTraversal(result)
println("")
postorderTraversal(result)
}
class TreeNode(val value : Int, var left : TreeNode ? = null, var right : TreeNode? = null)
fun insert(root : TreeNode? = null, value : Int) : TreeNode {
if(root == null){
return TreeNode(value)
}
if(value < root.value) {
root.left = insert(root.left, value)
} else {
root.right = insert(root.right, value)
}
return root
}
fun inorderTraversal(root: TreeNode?) {
if (root != null) {
inorderTraversal(root.left)
print("${root.value} ")
inorderTraversal(root.right)
}
}
fun preorderTraversal(root: TreeNode?) {
if (root == null) return
print("${root.value} ")
preorderTraversal(root.left)
preorderTraversal(root.right)
}
fun postorderTraversal(root: TreeNode?) {
if (root == null) return
preorderTraversal(root.left)
preorderTraversal(root.right)
print("${root.value} ")
}