Given a binary tree, find its minimum depth.
The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
BST中深度的问题,我们可以递归(DFS),也可以迭代解决(BFS),我习惯性用迭代,主要是用习惯了。需要注意的是,判断条件是叶子节点,不是左右子树,代码如下:
class Solution {
public:
int minDepth(TreeNode* root) {
if(root==NULL) return 0;
//if(root->left&&!root->right||!root->left&&root->right) return 2;
queue<TreeNode*> A;
A.push(root);A.push(NULL);
int depth=1;
while(!A.empty()){
auto B=A.front();
if(B==NULL){
depth++;A.pop();
}
else{
if(!B->left&&!B->right) return depth;
else {
if(B->left) A.push(B->left);
if(B->right) A.push(B->right);
A.pop();
if(A.front()==NULL) A.push(NULL);
}
}
}
return depth;
}
};