Ich habe eine Funktion, die ich versuche zu analysieren, welche seine Ausgabe 7:Wie funktioniert diese Funktion, um die Anzahl der Knoten im binären Baum berechnet
dieser Code-Block Gegeben:
int func_1(struct node* node)
{
if (node == NULL)
return 0;
else
return func_1(node->left) + 1 + func_1(node->right);
}
Der Rückgabewert ist 7.
Ich weiß, Rekursion und es ist ein bisschen einfach hier, ich versuchte zu folgen und ich kann nicht verstehen, wie es zurückkam 7. Ich berechnete, dass es nur links geht, links, dann einmal richtig, und das ist es. was wird 3. Und selbst wenn es 3 Mal richtig geht, nach der Wurzel, wird es immer noch 6 zurückgeben und nicht 7.
Können Sie mir bitte helfen?
Das sollte meine genaue Erklärung sein! Klar und auf den Punkt. – Module
Das ist perfekt! –
Für Ihre Klarheit habe ich einige Gründe für die Rekursion hinzugefügt. –