Jak obliczyć rozmiar drzewa nierekurencyjnie?

0

Witam
Coś ciężko mi idzie z algorytmami nie bazującymi na rekurencji. W tym zadaniu nawet nie wiem jak się za to zabrać bo struktura jest drzewiasta i nie wiem jak zacząć. Pewnie jakiś while() musi być strażnikiem który pilnuje czy już przez wszystkie węzły przeszedłeś.

Rozwiązanie rekurencyjne:

struct Node
{
    int val;
    Node* leftNode;
    Node* rightNode;
};
int nodeHeight(Node* node)
{
    if(!node)
        return 0;

    return 1 + max(nodeHeight(node.leftChild), nodeHeight(node.rightChild));
}

main
{
...
     int h = nodeHeight(root);
};

1 użytkowników online, w tym zalogowanych: 0, gości: 1