public Fibonacci union(Fibonacci H1, Fibonacci H2) {
      Fibonacci H = new Fibonacci();        
        //tarkistetaan, ettei kummankaan keon minimi ole null        
        if ((H1 != null) && (H2 != null)) {            
            //tehdään alustavasti H1:n minimistä H:n minimi            
            H.min = H1.min;
            if (H.min != null) {
                if (H2.min != null) {                    
                    //lisätään H2 uuteen kekoon laittamalla sen alkiot oikeille paikoille                    
                    H.min.right.left = H2.min.left;
                    H2.min.left.right = H.min.right;
                    H.min.right = H2.min;
                    H2.min.left = H.min;                    
                    //tarkistetaan, onko H2 minimi pienempi kuin H1:n minimi                    
                    if (H2.min.value < H1.min.value) {
                        H.min = H2.min;
                    }
                }
            } else {
                H.min = H2.min;
            }            
            //kasvatetaan uuden keon kokoa            
            H.size = H1.size + H2.size;
        }
        return H;
    }