So könnte eine Implementierung in C++ aussehen:
int countNodes(Node* root)
{
    if (root == NULL)
        return 0;
    return 1 + countNodes(root->left) +
               countNodes(root->right);
}

Um die Performance zu testen, könntest du die Funktionen jeweils in einer For-Loop mit tausenden Iterationen laufen lassen, um dir dann die Laufzeit ausgeben zu lassen.
In python würde das bspw so aussehen:
from time import perfcounter

n_iter = 1000
root = ...
# aufsetzung des baumes
# ...

t0 = perfcounter()
for _ in range(n_iter):
     count_nodes(root)
print(f"{n_iter} iterations took: {perfcounter()-t0}")
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence