题解 | #二叉树的深度#

二叉树的深度

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

全部评论

相关推荐

野猪不是猪🐗:现在的环境就是这样,供远大于求。 以前卡学历,现在最高学历不够卡了,还要卡第一学历。 还是不够筛,于是还要求得有实习、不能有gap等等... 可能这个岗位总共就一个hc,筛到最后还是有十几个人满足这些要求。他们都非常优秀,各方面都很棒。 那没办法了,看那个顺眼选哪个呗。 很残酷,也很现实
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务