diff --git a/src/container/heap/heap.go b/src/container/heap/heap.go index af05261c10a95..b2c64276c82db 100644 --- a/src/container/heap/heap.go +++ b/src/container/heap/heap.go @@ -72,8 +72,9 @@ func Remove(h Interface, i int) interface{} { n := h.Len() - 1 if n != i { h.Swap(i, n) - down(h, i, n) - up(h, i) + if !down(h, i, n) { + up(h, i) + } } return h.Pop() }