题解 | #按之字形顺序打印二叉树#
按之字形顺序打印二叉树
http://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0
二叉树这种题,有种百试不爽的感觉。题目比较简单,再简化一下就清晰明了。按层次打印二叉树,先序遍历,按层push就解决了。
加了一个之字形,增加了一点难度。难度也不大,偶数的层就使用头插法push就可以了。
class Solution {
public:
vector<vector<int> > res;
vector<vector<int> > Print(TreeNode* pRoot) {
PrintLevel(pRoot, 0);
return res;
}
void PrintLevel(TreeNode* pRoot,int level){
if(pRoot == NULL){
return;
}
if(res.size() < level + 1){
res.push_back({});
}
if(level % 2 == 0){
res[level].push_back(pRoot->val);
}else{
res[level].insert(res[level].begin(), pRoot->val);
}
PrintLevel(pRoot->left,level+1);
PrintLevel(pRoot->right,level+1);
}
};
联想公司福利 1500人发布