Minimum Depth of Binary Tree

来源:互联网 发布:一个网络协议主要由 编辑:程序博客网 时间:2024/05/22 21:39
class Solution {
public:
    int minDepth(TreeNode* root) {
         queue<TreeNode*> Q1,Q2;
    //    vector<int>level;
     //   vector<vector<int>>result;
        TreeNode* node;
        int i=1;
       if(!root) return 0;
       Q1.push(root);
       while(!Q1.empty())
      {
          while(!Q1.empty())
          {
            node=Q1.front();
            Q1.pop();
            if(node->left==NULL&&node->right==NULL)
             return i;
             if(node->left!=NULL) 
            Q2.push(node->left);
            
            if(node->right!=NULL)
             Q2.push(node->right);
          }
          swap(Q2,Q1);
          i++;
      }
 
    }

};


主要是用层序遍历的思路,碰到一个左右节点为空的即可返回。 两层while循环。

0 0