题解 | #二叉树的深度#

二叉树的深度

http://www.nowcoder.com/practice/435fb86331474282a3499955f0a41e8b

递归深度优先遍历计算树深度。

/*
struct TreeNode {
	int val;
	struct TreeNode *left;
	struct TreeNode *right;
	TreeNode(int x) :
			val(x), left(NULL), right(NULL) {
	}
};*/
class Solution {
public:
    int TreeDepth(TreeNode* pRoot) {
        if(!pRoot){
            return 0;
        }
        int max = 0;
        find(pRoot,max,0);
        return max;
    }
    void find(TreeNode* pRoot,int &max, int deep){
        deep++;
        if(pRoot->left){
            find(pRoot->left,max,deep);
        }
        if(pRoot->right){
            find(pRoot->right,max,deep);
        }
        if(!pRoot->left && !pRoot->right){
            if(deep > max){
                max = deep;
            }
        }
    }
};
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务