给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例: 给定二叉树 [3,9,20,null,null,15,7],
class Solution {
public:
int getdepth(TreeNode* node) {
if (node == NULL) return 0;
int leftdepth = getdepth(node->left); // 左
int rightdepth = getdepth(node->right); // 右
int depth = 1 + max(leftdepth, rightdepth); // 中
return depth;
}
int maxdepth1(TreeNode* root) {
return getdepth(root);
}
int maxDepth2(TreeNode* root) {
if(root == nullptr) return 0;
que.push(root);
int res = 1;
while(!que.empty())
{
int size = que.size();
for(int i = 0; i < size; i++)
{
TreeNode *node = que.front();
que.pop();
if(node->left) que.push(node->left);
if(node->right) que.push(node->right);
}
res++;
}
return res - 1;
}
private:
queue<TreeNode*> que;
};
标签:node,return,int,que,二叉树,深度,root,104
From: https://www.cnblogs.com/lihaoxiang/p/17287191.html