题目链接:click~
/*题意:对一颗二叉树进行Z字行一层一层的遍历*/
class Solution {
public:
void DFS(TreeNode *T, int level, vector<vector<int>> &path) {
if(T == NULL) return;
if(level == path.size()) {
path.resize(level+1);
}
path[level].push_back(T->val);
DFS(T->left, level+1, path);
DFS(T->right, level+1, path);
}
vector<vector<int> > zigzagLevelOrder(TreeNode *root) {
vector<vector<int>> path;
if(root == NULL) return path;
DFS(root, 0, path);
int len = path.size();
for(int i = 1; i < len; i += 2)
reverse(path[i].begin(), path[i].end());
}
};