Das macht bei mir genau dieselben Probleme. In der Originalform (das "do" muss entfernt werden, damit dioe Syntax ok ist) gibt's einen Segmentation Fault in rotate; wenn ich dessen Argumente vertausche, laeuft wTrave beim Ein-Knoten-Baum in die Endlosschleife. Aber mit einem nicht-NULL-Stopper funktioniert's: void wTrav(struct mynode* cur) { if (cur == NULL) return; struct mynode stopper = { NULL, NULL, -99999999, -99999999 }; struct mynode* prv = &stopper; // traverse the whole tree while (cur != &stopper) { visit(cur->key); rotate(&cur,&prv); } } Die allererste Abfrage ist haesslich, aber anscheinend nicht vermeidbar. - Jochen Burghardt 19:32, 7. Apr. 2020 (CEST)