请教下面图片中的这个内容该怎么做呢,我能该如何去解决这种问题呢?
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
private:
int next_layer_num=0;
int current_layer_num=1;
int deep_min=1;
queue <struct TreeNode*> q;
public:
/**
*
* @param root TreeNode类
* @return int整型
*/
int run(TreeNode* root) {
if(root == NULL) return 0;
q.push(root);
do{
struct TreeNode * node = q.front();
if(node->left){
++next_layer_num;
q.push(node->left);
}
if(node->right){
++next_layer_num;
q.push(node->right);
}
if(node->left==NULL && node->right==NULL)
return deep_min;
q.pop();
if(--current_layer_num==0)
{
current_layer_num=next_layer_num;
next_layer_num=0;
++deep_min;
}
}while(!q.empty());
return 0;
}
};