The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
#include<iostream>#include<algorithm>usingnamespace std;structTreeNode {int val; TreeNode *left; TreeNode *right;TreeNode(int x) :val(x),left(NULL),right(NULL) {}};/* * Recursive call stack will build towards the maximum depth of the left subtree, * and then the right subtree. Leaving the call stack will return the right * subtree tree and then left bottom up.*/intmaxDepth(TreeNode* root) {if (root ==NULL) return0;returnmax(maxDepth(root->left),maxDepth(root->right)) +1;}