题目
给定一个树, 计算树的深度.
Input: [3,9,20,null,null,15,7]
3
/ \
9 20
/ \
15 7
Output: 3
思路
使用queue循环, 关键是结果level可能多加1.
int maxDepth(TreeNode* root) {
queue<TreeNode*> q;
q.push(root);
int level = 0;
while (!q.empty()) {
int size = (int)q.size();
for (int i = 0; i < size; i++) {
TreeNode *node = q.front();
q.pop();
if (node == nullptr) continue;
q.push(node->left);
q.push(node->right);
}
if (q.size() > 0) level++;
}
return level;
}
总结
注意边界值和特殊情况.
网友评论