public V put (K newKey, V newValue) {
		if (root == null) {
			root = new Node(newKey, newValue);
			size++;
			return null;
		}
		
		Node node = root;
		
		while (true) {
			if (newKey.compareTo(node.mKey) < 0) {
				if (node.left == null) {
					node.left = new Node(newKey, newValue);
					size++;
					return null;
				} else
					node = node.left;
			} else if (newKey.compareTo(node.mKey) > 0) {
				if (node.right == null) {
					node.right = new Node(newKey, newValue);
					size++;
					return null;
				} else
					node = node.right;
			} else { // (newKey.compareTo(node.mKey) == 0)
				V oldValue = node.mValue;
				node.mValue = newValue;
				return oldValue;
			}
		}
	}