力扣102. 二叉樹的層序遍歷
阿新 • • 發佈:2022-04-19
102. 二叉樹的層序遍歷
102. 二叉樹的層序遍歷
難度:中等
描述:給你二叉樹的根節點 root ,返回其節點值的 層序遍歷 。 (即逐層地,從左到右訪問所有節點)。
示例 1:
輸入:root = [3,9,20,null,null,15,7]
輸出:[[3],[9,20],[15,7]]
示例 2:
輸入:root = [1]
輸出:[[1]]
示例 3:
輸入:root = []
輸出:[]
參考思路:連結
程式碼
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { queue<TreeNode*>q; vector<vector<int>>res; if(root!=nullptr) q.push(root); while(!q.empty()) { vector<int>tem; int n=q.size(); //每次遍歷一層後再遍歷下一層 for(int i=0;i<n;i++) { TreeNode* p=q.front(); q.pop(); tem.push_back(p->val); if(p->left!=nullptr) q.push(p->left); if(p->right!=nullptr) q.push(p->right); } res.push_back(tem); } return res; } };