class Solution {
public:
vector<vector<int>> zigzagLevelOrder(TreeNode* root) {
vector<vector<int> > res;
if(root == nullptr) return res;
queue<TreeNode*> q0;
queue<TreeNode*> q1;
q0.push(root);
while(!q0.empty()){
vector<int> tmp;
while(!q0.empty()){//出队
TreeNode *p = q0.front();
q0.pop();
tmp.push_back(p->val);
if(p->left) q1.push(p->left);
if(p->right) q1.push(p->right);
}
if(res.size() & 0x1 == 1) reverse(tmp.begin(), tmp.end());
res.push_back(tmp);
swap(q0, q1);
}
return res;
}
};LeetCode之Binary Tree Zigzag Level Order Traversal
最新推荐文章于 2021-02-05 11:10:39 发布
本文介绍了一种实现二叉树锯齿形层序遍历的方法。通过使用两个队列交替存储每层节点,实现了节点值按层级交错输出的功能。此算法能够有效地处理二叉树数据结构,并返回一个二维数组形式的结果。
264

被折叠的 条评论
为什么被折叠?



