1. 程式人生 > 遊戲 >戰略牌組構建遊戲《超級子彈破》試玩Demo上線 支援中文

戰略牌組構建遊戲《超級子彈破》試玩Demo上線 支援中文

102. 二叉樹的層序遍歷

給你二叉樹的根節點 root ,返回其節點值的 層序遍歷 。 (即逐層地,從左到右訪問所有節點)。

示例 1:

輸入:root = [3,9,20,null,null,15,7]
輸出:[[3],[9,20],[15,7]]

示例 2:

輸入:root = [1]
輸出:[[1]]

示例 3:

輸入:root = []
輸出:[]

提示:

  • 樹中節點數目在範圍 [0, 2000]
  • -1000 <= Node.val <= 1000

思路:

​ BFS廣度優先遍歷即可

class Solution {
public:

    vector<vector<int>> levelOrder(TreeNode* root) {
        vector<vector<int>>ans;
        if(root==nullptr)return ans;
        //BFS
        queue<TreeNode*>q;//BFS核心結構
        q.push(root);
        while(!q.empty()){//while控制從上到下
            int sz=q.size();
            vector<int>res;
            for(int i=0;i<sz;i++){//for從左到右
                TreeNode* cur=q.front();
                q.pop();
                res.push_back(cur->val);
                if(cur->left!=nullptr)q.push(cur->left);
                if(cur->right!=nullptr)q.push(cur->right);
            }
            ans.push_back(res);
        }
        return ans;
    }
};