#include<iostream>
using namespace std;
struct TreeNode {
int value;
TreeNode*left;
TreeNode*right;
TreeNode(int x = 0) :value(x), left(NULL), right(NULL) {}
};
class Solution {
public:
int TreeDepth(TreeNode*proot)
{
if (proot == NULL)
return 0;
int left = TreeDepth(proot->left);
int right = TreeDepth(proot->right);
return (left > right) ? (left + 1) : (right + 1);
}
};
int main() {
TreeNode*root = new TreeNode(1);
TreeNode*node1 = new TreeNode(2); TreeNode*node2 = new TreeNode(3);
TreeNode*node3 = new TreeNode(4); TreeNode*node4 = new TreeNode(5); TreeNode*node5 = new TreeNode(6);
TreeNode*node6 = new TreeNode(7);
root->left = node1; root->right = node2;
node1->left = node3; node1->right = node4;node2->right = node5;
node4->left = node6;
Solution solution;
int depth = solution.TreeDepth(root);
cout << "the depth of the binarytree is " << depth << endl;
system("pause");
return 0;
}