重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
我们可以利用队列来层序遍历整棵二叉树。为了实现利用队列遍历二叉树,我们在每次循环的开始是统计当前队列中的个数而后进行循环。在每次的循环当中,我们将当前节点的左右子节点加入队列中并在下一次循环中进行遍历。其中,为了实现锯齿形的层序遍历,我们需要判断当前深度是否为2的倍数,若为2的倍数则说明当前层的遍历需要进行逆序操作,我们将逆序操作后的数组加入最终结果当中。
class Solution {public:
vector>result;
queueq;
vector>zigzagLevelOrder(TreeNode *root) {int depth = 1;
if (!root) return {};
q.push(root);
while (!q.empty()) {int currentLevelSize = q.size();
vectortemp_res;
for (int i = 0; i< currentLevelSize; ++i) {TreeNode *cur = q.front();
q.pop();
temp_res.emplace_back(cur->val);
if (cur->left) q.push(cur->left);
if (cur->right) q.push(cur->right);
}
if (depth % 2 == 0) reverse(temp_res.begin(), temp_res.end());
++depth;
result.emplace_back(temp_res);
}
return result;
}
};
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧