题目:
class Solution {
public:
void traversal(TreeNode* cur, vector<vector<int>>& result, int depth){
if(cur==nullptr) return;
if(result.size()==depth) result.push_back(vector<int>());
result[depth].push_back(cur->val);
traversal(cur->left, result, depth+1);
traversal(cur->right, result, depth+1);
}
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> result;
int depth=0;
traversal(root, result, depth);
for(int i=0;i<result.size();i++){ //取巧的方法,即将按照正常层序遍历得到的结果按层进行重排序
if(i%2==1) reverse(result[i].begin(), result[i].end());
}
return result;
}
};