题解 | #二叉树的深度# | C++

二叉树的深度

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

/*
struct TreeNode {
	int val;
	struct TreeNode *left;
	struct TreeNode *right;
	TreeNode(int x) :
			val(x), left(NULL), right(NULL) {
	}
};*/

int Max(int a, int b){
	return (a > b) ? a : b;
}

class Solution {
public:
    int TreeDepth(TreeNode* pRoot) {
		if(pRoot == nullptr)
			return 0;

		if (pRoot->left != nullptr && pRoot->right != nullptr){
			return Max(1+TreeDepth(pRoot->left),\
			 1+TreeDepth(pRoot->right));
		}else if (pRoot->left != nullptr) {
			return 1+TreeDepth(pRoot->left);
		}else if (pRoot->right != nullptr) {
			return 1+TreeDepth(pRoot->right);
		}else{
			return 1; //终止条件
		}	
    }
};

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务