/** * Delete node by key * @param KeyInterface $key */ public function delete(KeyInterface $key) { if (!$this->root->getLeft()->isRed() && !$this->root->getRight()->isRed()) { $this->root->setColor(Node::RED); } $this->_delete($this->root, $key); if (!$this->root->isEmpty()) { $this->root->setColor(Node::BLACK); } }