0
点赞
收藏
分享

微信扫一扫

牛客BM26. 求二叉树的层序遍历

驚鴻飛雪 2022-04-06 阅读 58
牛客C++

Description:

题目大意:输出二叉树的层序遍历

解题思路:

算法标签:BFS

代码:

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */

class Solution {
public:
    vector<vector<int> > levelOrder(TreeNode* root) {
        vector<vector<int> > ans;
        if(root == NULL)
            return ans;
        queue<TreeNode* >tree;
        
        // 存放相邻两层节点
        tree.push(root);
        while(!tree.empty()) {
            // 存储一层的节点
            vector<int>temp;
            int len = tree.size();
            for(int i = 0;i < len;i++) {
                TreeNode* treenode = tree.front();
                tree.pop();
                temp.push_back(treenode -> val);
                
                // 下一层入队
                if(treenode -> left != NULL)
                    tree.push(treenode -> left);
                if(treenode -> right != NULL)
                    tree.push(treenode -> right);
            }
            ans.push_back(temp);
        }
        return ans;
    }
};
举报

相关推荐

0 条评论