find height of a tree

#include <iostream>
using namespace std;

struct Node {
    int data;
    Node* left;
    Node* right;

    Node(int value) : data(value), left(nullptr), right(nullptr) {}
};

int heightOfTree(Node* root) {
    if (root == nullptr) {
        return 0;
    } else {
        int leftHeight = heightOfTree(root->left);
        int rightHeight = heightOfTree(root->right);

        return max(leftHeight, rightHeight) + 1;
    }
}

int main() {
    // Example usage
    Node* root = new Node(1);
    root->left = new Node(2);
    root->right = new Node(3);
    root->left->left = new Node(4);
    root->left->right = new Node(5);

    cout << "Height of the tree: " << heightOfTree(root) << endl;

    // Deallocate memory (not shown in the explanation)
    // ... (code to delete the nodes and free memory)

    return 0;
}