1、题目:
Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Note: A leaf is a node with no children.
Example:
Given binary tree [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
return its depth = 3.
2、解答:这题可以用BFS求解,和递归进行。C++用BFs,加深对广度搜索的理解
3、C++代码:
class Solution {
public:
int maxDepth(TreeNode* root) {
if(root == NULL)
return 0;
int len = 0;
queue<TreeNode*> q;
q.push(root);
while(!q.empty()){
++len;
for(int i=0,n=q.size();i<n;i++){
TreeNode *temp = q.front();
q.pop();
if(temp->left)
q.push(temp->left);
if(temp->right)
q.push(temp->right);
}
}
return len;
}
};
python代码 :好像没有三元运算符
class Solution:
def maxDepth(self, root):
"""
:type root: TreeNode
:rtype: int
"""
if root == None:
return 0
return max(self.maxDepth(root.left),self.maxDepth(root.right)) + 1