반응형
https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/description/
Binary Tree Zigzag Level Order Traversal - LeetCode
Binary Tree Zigzag Level Order Traversal - Given the root of a binary tree, return the zigzag level order traversal of its nodes' values. (i.e., from left to right, then right to left for the next level and alternate between). Example 1: [https://assets
leetcode.com
BFS를 이용하여 풀 수 있었습니다.
한 레벨씩 탐색한 결과를 기억해주고, 역순인 시점에는 탐색 결과를 뒤집어주면 됩니다.
class Solution {
public:
vector<vector<int>> zigzagLevelOrder(TreeNode* root) {
if(!root) return {};
queue<TreeNode*> q;
q.push(root);
bool flag = false;
vector<vector<int>> res;
while(!q.empty()) {
int sz = q.size();
vector<int> temp;
while(sz--) {
TreeNode* node = q.front();
q.pop();
temp.push_back(node->val);
if(node->left) q.push(node->left);
if(node->right) q.push(node->right);
}
if(flag) reverse(temp.begin(), temp.end());
flag = !flag;
res.push_back(temp);
}
return res;
}
};반응형
'Algorithm' 카테고리의 다른 글
| LeetCode 540. Single Element in a Sorted Array (0) | 2023.02.22 |
|---|---|
| LeetCode 35 - Search Insert Position (0) | 2023.02.20 |
| LeetCode 226 - Invert Binary Tree (0) | 2023.02.18 |
| LeetCode 783 - Minimum Distance Between BST Nodes (1) | 2023.02.18 |
| LeetCode 104 - Maximum Depth of Binary Tree (0) | 2023.02.16 |