题目
Given a binary tree, return the level order traversal of its
nodes' values. (ie, from left to right, level by level).
For example: Given binary tree
[3,9,20,null,null,15,7]
,
return its level order traversal as:
1 2 3 4 5
| [ [3], [9,20], [15,7] ]
|
题解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { queue<pair<TreeNode*,int>> q; vector<vector<int>> ans; if(root==NULL) return ans; vector<int> tmp; int l=0; q.push({root,0}); while(!q.empty()) { auto [t1,t2]=q.front(); q.pop(); if(t2==l) { tmp.push_back(t1->val); }else{ ans.push_back(tmp); tmp.clear(); tmp.push_back(t1->val); l=t2; } if(t1->left) q.push({t1->left,t2+1}); if(t1->right) q.push({t1->right,t2+1}); } ans.push_back(tmp); return ans; } };
|