когда val tmp: Self = findMax(node.left)!! делаешь и он возвращает null происходит очень плохо (потому что !!)
|
} else { |
|
val tmp: Self = findMax(node.left)!! |
|
node.key = tmp.key |
|
node.value = tmp.value |
|
node.left = removeNode(node.left, tmp.key) |
|
} |
|
} |
|
return node |
|
} |
|
|
|
override fun find(key: K): V? = findNode(rootNode, key) |
|
private fun findNode(node: Self?, key: K): V? { |
|
return if (node == null) { |
|
null |
|
} else if (key == node.key) { |
|
node.value |
|
} else { |
|
if (key < node.key) |
|
findNode(node.left, key) |
|
else |
|
findNode(node.right, key) |
|
} |
|
} |
|
|
|
protected fun findMax(node: Self?): Self? = when { |
|
node == null -> null |
|
node.right == null -> node |
|
else -> findMax(node.right) |
|
} |
когда
val tmp: Self = findMax(node.left)!!делаешь и он возвращает null происходит очень плохо (потому что !!)trees-3/trees/src/main/kotlin/bst/AbstractBST.kt
Lines 39 to 67 in 209197e