private Node higherNode(T k) {
		Node x = root;
		while (x != NULL) {
			if (k.compareTo(x.key) <0) {
				if(x.left != NULL){
					x = x.left;
				}else{
					return x;
				}
			} else {
				if(x.right != NULL){
					x = x.right;
				}else{
					Node current = x;
                    while(current.parent != NULL && current.parent.right == current) {
                        current = current.parent;
                    }
                    return current.parent;
				}
			}
		}
		return NULL;
	}