- LeetCode Binary Tree Zigzag Leve
- 103. Binary Tree Zigzag Level Or
- leetcode 103 二叉树的锯齿形层序遍历
- 103. Binary Tree Zigzag Level Or
- 103. 二叉树的锯齿形层序遍历【BFS】
- [刷题防痴呆] 0103 - 二叉树的锯齿形层序遍历 (Bina
- LeetCode | 1372. Longest ZigZag
- leetcode--binary-tree-zigzag-lev
- [leetcode] 103. Binary Tree Zigz
- Leetcode 103. Binary Tree Zigzag
第一层从左到右,第二层从右到左,第三层从左到右……
vector<vector<int>> zigzagLevelOrder(TreeNode* root) {
vector<vector<int>> res;
if(!root) return res;
bool leftToRight = true;
queue<TreeNode*> que;
que.push(root);
while(!que.empty()){
int num = que.size();
vector<int> tmp(num);
for(int i = 0; i<num; i++){
TreeNode* node = que.front();
que.pop();
int index = leftToRight ? i : num - i - 1;
tmp[index] = node -> val;
if(node -> left) que.push(node -> left);
if(node -> right) que.push(node -> right);
}
leftToRight = !leftToRight;
res.push_back(tmp);
}
return res;
}
进行正常的队列层序遍历,只需控制
int index = leftToRight ? i : num - i - 1;
tmp[index] = node -> val;
也就是tmp的次序。
网友评论