102. Binary Tree Level Order Traversal
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] ]
问题比较明显,就是按层数从左往右输出每个TreeNode节点的值就可以了。很容易想到广度优先遍历。
1 class Solution { 2 public: 3 vector<vector<int>> levelOrder(TreeNode* root) { 4 vector<vector<int>> res; 5 queue<TreeNode*> q; 6 if (root) { 7 q.push(root); 8 while (q.size()) { 9 vector<int> temp; 10 int len = q.size(); 11 for (int i=0; i<len; ++i) { 12 temp.push_back(q.front()->val); 13 if (q.front()->left) q.push(q.front()->left); 14 if (q.front()->right) q.push(q.front()->right); 15 q.pop(); 16 } 17 res.push_back(temp); 18 } 19 } 20 return res; 21 } 22 };