public function setRight(BinaryTreeNode $right = null) { $oldRight = $this->getRight(); $delta = ($oldRight !== null ? -$oldRight->getNodeCount() : 0) + ($right !== null ? $right->getNodeCount() : 0); parent::setRight($right); $this->updateNodeCount($delta); }