二叉树的层序遍历

Sandals-little / 2023-08-14 / 原文

    int findBottomLeftValue(TreeNode* root) {
        queue<TreeNode*>qu;
        if(root!=nullptr) qu.push(root);
        int size=0;
        int result=0;
        while(!qu.empty()){
            TreeNode*temp;
            size=qu.size();
            for(int i=0;i<size;++i){
                temp=qu.front();
                //由于无法判断什么时候到了最后一层,因此将每层的第一个元素赋给result,下一层的替换上一层的,最后留下的就是最后一层的第一个元素
                if(i==0) result=temp->val;
                if(temp->left!=nullptr) qu.push(temp->left);
                if(temp->right!=nullptr) qu.push(temp->right);
                qu.pop();
            }
        }
        return result;
    }