Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; class Solution { public: int maxDepth(TreeNode *root) { MaxDepth = 0; dfs(root,0); return MaxDepth; } private: int MaxDepth; void dfs(TreeNode *root,int level) { if(root == NULL) return; if(root->left == NULL && root->right == NULL) { if(MaxDepth < level) MaxDepth = level; } dfs(root->left,level+1); dfs(root->right,level+1); } };