奶茶少冰多芋圆 2021-11-09 21:46 采纳率: 84.4%
浏览 4
已结题

二叉树最小深度该怎么写呢

请教下面图片中的这个内容该怎么做呢,我能该如何去解决这种问题呢?

img

  • 写回答

1条回答 默认 最新

  • 从善若水 优质创作者: 信息安全技术领域 2021-11-09 21:53
    关注
    
    /**
     * 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;
        }
    };
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月17日
  • 已采纳回答 11月9日
  • 创建了问题 11月9日