public void extract_min() {
        Binomial helpheap = new Binomial();
        Binomialnode min = find_min();
        Binomialnode temp = min.child;
        Binomialnode curr = root;
        Binomialnode help = root;

        //jos juuri ei ole minimi, etsitään sen sisarista pienintä arvoa
        if (root.value != min.value) {
            while (help.sibling.value != min.value) {
                help = help.sibling;
            }
            help = help.sibling.sibling;
        }
        //jos juuri on pienin value, poistetaan se ja tehdään sen sisaresta uusi juuri.
        if (root.value == min.value) {
            root = root.sibling;
        }

        //tapaus, jossa pienemmällä arvolla on lapsia. järjestetään keko apukeon avulla
        if (min.child != null) {
            /*
             * Vaihdetaan alipuun järjestys
             */
            while (temp != null) {
                Binomialnode next = temp.sibling;
                temp.sibling = helpheap.root;
                helpheap.root = temp;
                temp = next;
            }

            Binomial new1 = union(this, helpheap);
            this.root = new1.root;
        }
    }