/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
vector<vector<int>> zigzagLevelOrder(TreeNode* root) {
vector<vector<int>> ans;
if (!root) {
return ans;
}
vector<int> tmp;
queue<TreeNode*> cur;
queue<TreeNode*> next;
cur.push(root);
int level = 0;
while (!cur.empty()) {
TreeNode* node = cur.front();
cur.pop();
tmp.push_back(node->val);
if (node->left) {
next.push(node->left);
}
if (node->right) {
next.push(node->right);
}
if (cur.empty()) {
if (level % 2 == 1) {
reverse(tmp.begin(), tmp.end());
}
ans.push_back(tmp);
tmp.clear();
swap(cur, next);
level += 1;
}
}
return ans;
}
};
二叉树层次遍历Z字打印
最新推荐文章于 2024-03-23 21:50:15 发布