diff --git a/Baumy/src/Baum.java b/Baumy/src/Baum.java index ff894e4..2010c38 100644 --- a/Baumy/src/Baum.java +++ b/Baumy/src/Baum.java @@ -168,7 +168,7 @@ public class Baum { public boolean remove(int wert) { - if(value < wert && linkesKind != null) + if(value > wert && linkesKind != null) { if(linkesKind.value == wert) { @@ -186,10 +186,15 @@ public class Baum { } else { - Knoten alt = linkesKind; - linkesKind = linkesKind.größterImTeilbaum(); - linkesKind.linkesKind = alt.linkesKind; - linkesKind.rechtesKind = alt.rechtesKind; + Knoten zuLöschen = linkesKind; + linkesKind = linkesKind.linkesKind.größterImTeilbaum(); + linkesKind.rechtesKind = zuLöschen.rechtesKind; //Alter rechter Teil wird wieder neu zugewiesen + if(linkesKind != zuLöschen.linkesKind) // den linken Knoten nur ändern, wenn es einen Teilbaum gibt + { + linkesKind.linkesKind = zuLöschen.linkesKind; + } + + } @@ -200,7 +205,7 @@ public class Baum { linkesKind.remove(wert); } } - if(value > wert) + if(value < wert) { if(rechtesKind.value == wert) rechtesKind = null;