Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private fun remove(node: TreeNode<K, V>?, key: K?): TreeNode<K, V>? {
- val keyHashCode = key.hashCode()
- val nodeHasCode = node?.key?.hashCode() ?: 0
- if (keyHashCode < nodeHasCode) {
- node?.left = remove(node?.left, key)
- } else if (keyHashCode > nodeHasCode) {
- node?.right = remove(node?.right, key)
- } else {
- if (node?.left == null && node?.right == null) {
- return null
- } else if (node.left == null) {
- return node.right
- } else if (node.right == null) {
- return node.left
- } else {
- val minNode = minValue(node.right)
- node.key = minNode?.key
- node.value = minNode?.value
- node.right = remove(node.right, minNode?.key)
- }
- }
- return node
- }
- private fun minValue(node: TreeNode<K, V>?): TreeNode<K, V>? {
- if (node?.left != null) {
- return minValue(node.left)
- }
- return node
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement