leetcode102 - Binary Tree Level Order Traversal - medium
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],
3
/ \
9 20
/ \
15 7
return its level order traversal as:
[ [3], [9,20], [15,7] ]
典型的BFS分层模板题
注意点是每个level的size要提前get出来,不能放在loop头里,因为queue的size是在随着pop/push变的,就错了
实现:
1 class Solution { 2 public: 3 vector<vector<int>> levelOrder(TreeNode* root) { 4 5 vector<vector<int>> res; 6 if (!root) return res; 7 8 queue<TreeNode*> q; 9 q.push(root); 10 11 while (!q.empty()){ 12 vector<int> level; 13 int n = q.size(); 14 for (int i=0; i<n; i++){ 15 TreeNode* cur = q.front(); 16 q.pop(); 17 level.push_back(cur->val); 18 if (cur->left) q.push(cur->left); 19 if (cur->right) q.push(cur->right); 20 } 21 res.push_back(level); 22 } 23 24 return res; 25 26 } 27 };

浙公网安备 33010602011771号