public void Put(K key) { Node <K> currentNode = new Node <K>(); currentNode.key = key; if (_root == null) { _root = currentNode; return; } Node <K> temp = _root; Node <K> parent = temp; while (temp != null) { parent = temp; if (currentNode.CompareTo(temp) < 0) { temp = temp.left; } else if (currentNode.CompareTo(temp) > 0) { temp = temp.right; } } if (currentNode.CompareTo(parent) < 0) { parent.left = currentNode; } else if (currentNode.CompareTo(parent) > 0) { parent.right = currentNode; } }