#include <iostream>
#include <algorithm>
using namespace std;
struct node {
int data;
node *left;
node *right;
};
node *insert(node *root,int d)
{
if(root==NULL)
{
node *temp=new node();
temp->data=d;
temp->left=temp->right=NULL;
root=temp;
}
else
{ if(root->data>d)
{
root->left=insert(root->left,d);
}
else
root->right=insert(root->right,d);
}
return root;
}
int height(node *root)
{
if(root==NULL)
return 0;
int left=height(root->left);
int right=height(root->right);
return max(left,right)+1;
}
int main() {
node *root=NULL;
root=insert(root,5);
root=insert(root,17);
root=insert(root,34);
root=insert(root,2);
int x=height(root);
cout << x << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IG5vZGUgewoJaW50IGRhdGE7Cglub2RlICpsZWZ0OwoJbm9kZSAqcmlnaHQ7Cn07CgogICAgIG5vZGUgKmluc2VydChub2RlICpyb290LGludCBkKQogICAgewogICAgICBpZihyb290PT1OVUxMKQogICAgICB7CiAgICAgICBub2RlICp0ZW1wPW5ldyBub2RlKCk7CiAgICAgICB0ZW1wLT5kYXRhPWQ7CiAgICAgICB0ZW1wLT5sZWZ0PXRlbXAtPnJpZ2h0PU5VTEw7CiAgICAgICByb290PXRlbXA7CgogICAgICB9CiAgICAgZWxzZQogICAgeyAgaWYocm9vdC0+ZGF0YT5kKQogICAgICB7CiAgICAgICByb290LT5sZWZ0PWluc2VydChyb290LT5sZWZ0LGQpOwogICAgICB9CiAgICAgIGVsc2UKICAgICAgcm9vdC0+cmlnaHQ9aW5zZXJ0KHJvb3QtPnJpZ2h0LGQpOwogICAgfQogICAgcmV0dXJuIHJvb3Q7CiAgIH0KICAgCiAgIGludCBoZWlnaHQobm9kZSAqcm9vdCkKewogIGlmKHJvb3Q9PU5VTEwpCiAgcmV0dXJuIDA7CgogIGludCBsZWZ0PWhlaWdodChyb290LT5sZWZ0KTsKICBpbnQgcmlnaHQ9aGVpZ2h0KHJvb3QtPnJpZ2h0KTsKICByZXR1cm4gbWF4KGxlZnQscmlnaHQpKzE7Cn0KCmludCBtYWluKCkgewogIG5vZGUgKnJvb3Q9TlVMTDsKICByb290PWluc2VydChyb290LDUpOwogIHJvb3Q9aW5zZXJ0KHJvb3QsMTcpOwogIHJvb3Q9aW5zZXJ0KHJvb3QsMzQpOwogIHJvb3Q9aW5zZXJ0KHJvb3QsMik7CiAgaW50IHg9aGVpZ2h0KHJvb3QpOwogIGNvdXQgPDwgeCA8PCBlbmRsOwoJcmV0dXJuIDA7Cn0=