- 回溯法
- 回溯法记录左右节点的深度;
- 不断更新结果的最大值。
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
public:
/**
*
* @param root TreeNode类
* @return int整型
*/
int result;
void getDepth(TreeNode* node, int depth) {
result = result > depth ? result : depth;
if (node->left == NULL && node->right == NULL) return;
if (node->left) {
getDepth(node->left, depth + 1);
}
if (node->right) {
getDepth(node->right, depth + 1);
}
return;
}
int maxDepth(TreeNode* root) {
// write code here
result = 0;
if (root == NULL) return result;
getDepth(root, 1);
return result;
}
};