fun main(args: Array<String>) {
val nodes: IntArray = intArrayOf(8, 3, 10, 1, 6, 14, 4, 7, 13)
val binaryTree = BinaryTree()
nodes.forEach { binaryTree.insert(it) }
}
class BinaryTree {
var root: Node? = null
private fun insertNode(node: Node, newNode: Node) {
if (newNode.key < node.key) {
if (node.left == null) {
node.left = newNode
} else {
insertNode(node.left!!, newNode);
}
} else {
if (node.right == null) {
node.right = newNode
} else {
insertNode(node.right!!, newNode)
}
}
}
fun insert(key: Int) {
val newNode = Node(key)
if (root == null) {
root = newNode
} else {
insertNode(root!!, newNode)
}
}
}
class Node(var key: Int) {
var left: Node? = null
var right: Node? = null
}
近期评论