题解 | #二叉树的深度#
二叉树的深度
https://www.nowcoder.com/practice/435fb86331474282a3499955f0a41e8b
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param pRoot TreeNode类 * @return int整型 */ void recursion(struct TreeNode* node, int* maxDepth, int* curDepth){ if(!node) return; //用于处理空树 (*curDepth)++; //当前深度+1 *maxDepth = *maxDepth > *curDepth ? *maxDepth : *curDepth; //更新最大深度 if(node->left){ //如果左子树存在,继续递归 recursion(node->left, maxDepth, curDepth); (*curDepth)--; //递归退出,当前深度-1 } if(node->right){ recursion(node->right, maxDepth, curDepth); (*curDepth)--; } } int TreeDepth(struct TreeNode* pRoot ) { // write code here int maxDepth = 0, curDepth = 0; //声明变量最大深度和当前深度。 recursion(pRoot, &maxDepth, &curDepth); //开始递归 return maxDepth; }