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 a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int num;
int maxDepth(TreeNode *root) {
if(!root) {
return 0;
}
num = numeric_limits<int>::min();
travel(root, 1);
return num;
}
void travel(TreeNode* node, int level) {
if(!node->left && !node->right) {
num = max(num, level);
return;
}
if(node->left) {
travel(node->left, level + 1);
}
if(node->right) {
travel(node->right, level + 1);
}
}
};