leetcode+ 二叉树BFS,用栈存储每一层,最后就能输出从底层到顶层每一层

点击打开链接
class Solution {
public:
    vector<vector<int>> levelOrderBottom(TreeNode* root) {
        vector<vector<int>> res;
        queue<TreeNode*> Q;
        if(root) Q.push(root);
        stack<vector<int>> st;
        while (!Q.empty()) {
            int count = 0;
            int levCount = Q.size();
            vector<int> levNode;
            while (count < levCount) {
                TreeNode* curNode = Q.front();
                Q.pop();
                levNode.push_back(curNode->val);
                if(curNode->left) Q.push(curNode->left);
                if(curNode->right) Q.push(curNode->right);
                count+=1;
            }
            st.push(levNode);
        }
        while (!st.empty()) {
            res.push_back(st.top());
            st.pop();
        }
        return res;
    }
};

猜你喜欢

转载自blog.csdn.net/u013554860/article/details/80649779