题目:
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.
For example:
Given binary tree [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
return its depth = 3.
题意:
求出输入二叉树的最深高度,并返回输出。我的想法是使用回溯将二叉树遍历一遍,并记录最深的高度值max,并进行更新。
代码:
void backtrack(TreeNode* root, int cur, int& max) {
if(root->left == NULL && root->right == NULL && max < cur+1)
{
max = cur+1;
return;
}
if(root->left != NULL)
{
backtrack(root->left, cur+1, max);
}
if(root->right != NULL)
{
backtrack(root->right, cur+1, max);
}
return;
}
int maxDepth(TreeNode* root) {
if(root == NULL)
return 0;
int max = 0, cur = 0;
backtrack(root, cur, max);
return max;
}
一次AC^____________________^四月快乐!