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);
};