题解 | #二叉树的深度#

二叉树的深度

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;
}

全部评论

相关推荐

05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务