LeetCode102: 二叉树的层序遍历
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
没什么好说的,一个队列解决。
1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */ 10 class Solution { 11 public: 12 vector<vector<int>> levelOrder(TreeNode* root) { 13 if(root==nullptr) 14 return {}; 15 queue<TreeNode*> qtree; 16 qtree.push(root); 17 vector<vector<int>> ret; 18 vector<int> partial_ret; 19 while(!qtree.empty()){ 20 int len=qtree.size(); 21 for(int i=0;i<len;++i){ 22 TreeNode* temp=qtree.front(); 23 qtree.pop(); 24 partial_ret.push_back(temp->val); 25 if(temp->left!=nullptr) 26 qtree.push(temp->left); 27 if(temp->right!=nullptr) 28 qtree.push(temp->right); 29 } 30 ret.push_back(partial_ret); 31 partial_ret.clear(); 32 } 33 return ret; 34 } 35 };