Endrekursion (Tail Recursion) liegt vor, wenn eine Funktion sich selbst aufruft und nach diesem Aufruf keine weitere Berechnung mehr ausführt. Ein Akkumulator kann Zwischenergebnisse tragen, damit die Funktion in dieser Form bleibt.
Manche Compiler oder Laufzeitumgebungen können einen solchen Aufruf in eine Schleife umwandeln und so zusätzlichen Stackbedarf vermeiden. Diese Optimierung ist jedoch nicht in jeder Sprache oder Implementierung garantiert.
Ob Endrekursion lesbarer oder effizienter ist als eine Schleife, hängt von Sprache, Datenstruktur und Aufgabe ab. Für große Eingaben sollten Laufzeit- und Speicherverhalten in der konkreten Umgebung geprüft werden.
Inhaltlich überarbeitet am 2026-10-13. Definition, Abgrenzung und Rechenbeispiel geprüft.