链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。
例如:
给定二叉树: [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
返回其层次遍历结果:
[ [3], [9,20], [15,7] ]
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector< vector<int> > levelOrder(TreeNode* root) { vector< vector<TreeNode*> >s; vector<TreeNode*>ss; if(root!=NULL){ ss.push_back(root); s.push_back(ss); while(s[s.size()-1].size()){ ss.clear(); int n=s.size()-1; for(int i=0;i<s[n].size();i++){ if(s[n][i]->left!=NULL)ss.push_back(s[n][i]->left); if(s[n][i]->right!=NULL)ss.push_back(s[n][i]->right); } s.push_back(ss); } } vector< vector<int> >a; vector<int>aa; for(int i=0;i<s.size();i++){ aa.clear(); for(int j=0;j<s[i].size();j++){ aa.push_back(s[i][j]->val); } if(aa.size()!=0)a.push_back(aa); } return a; } };