int height(Node* root) { // Base case: empty tree has height 0 if (root == nullptr) return 0; // recur for left and right subtree and consider maximum depth return 1 + max(height(root->left), height(root->right)); }