pop method
Remove and return the smallest element.
Implementation
@override
T? pop() {
if (isEmpty) return null;
_swap(0, _heap.length - 1);
final T minValue = _heap.removeLast();
if (!isEmpty) {
_heapifyDown(0);
}
return minValue;
}