Skip to content

Commit d9f134f

Browse files
committed
🚀 23-Jul-2020
1 parent 07224d7 commit d9f134f

File tree

2 files changed

+136
-0
lines changed

2 files changed

+136
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between).
2+
3+
For example:
4+
Given binary tree [3,9,20,null,null,15,7],
5+
3
6+
/ \
7+
9 20
8+
/ \
9+
15 7
10+
return its zigzag level order traversal as:
11+
[
12+
[3],
13+
[20,9],
14+
[15,7]
15+
]
16+
17+
18+
19+
20+
21+
22+
/**
23+
* Definition for a binary tree node.
24+
* struct TreeNode {
25+
* int val;
26+
* TreeNode *left;
27+
* TreeNode *right;
28+
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
29+
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
30+
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
31+
* };
32+
*/
33+
class Solution {
34+
public:
35+
vector<vector<int>> zigzagLevelOrder(TreeNode* root) {
36+
vector<vector<int>> res;
37+
if(root== NULL)
38+
return res;
39+
queue<TreeNode*> q;
40+
q.push(root);
41+
int f = false;
42+
while(q.size())
43+
{
44+
int size = q.size();
45+
vector<int> level;
46+
while(size--)
47+
{
48+
TreeNode* curr = q.front();
49+
level.push_back(curr->val);
50+
q.pop();
51+
if(curr->left)
52+
{
53+
q.push(curr->left);
54+
}
55+
if(curr->right)
56+
{
57+
q.push(curr->right);
58+
}
59+
60+
}
61+
if(f)
62+
reverse(level.begin(),level.end());
63+
f=!f;
64+
res.push_back(level);
65+
}
66+
return res;
67+
}
68+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between).
2+
3+
For example:
4+
Given binary tree [3,9,20,null,null,15,7],
5+
3
6+
/ \
7+
9 20
8+
/ \
9+
15 7
10+
return its zigzag level order traversal as:
11+
[
12+
[3],
13+
[20,9],
14+
[15,7]
15+
]
16+
17+
18+
19+
20+
21+
22+
/**
23+
* Definition for a binary tree node.
24+
* struct TreeNode {
25+
* int val;
26+
* TreeNode *left;
27+
* TreeNode *right;
28+
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
29+
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
30+
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
31+
* };
32+
*/
33+
class Solution {
34+
public:
35+
vector<vector<int>> zigzagLevelOrder(TreeNode* root) {
36+
vector<vector<int>> res;
37+
if(root== NULL)
38+
return res;
39+
queue<TreeNode*> q;
40+
q.push(root);
41+
int f = false;
42+
while(q.size())
43+
{
44+
int size = q.size();
45+
vector<int> level;
46+
while(size--)
47+
{
48+
TreeNode* curr = q.front();
49+
level.push_back(curr->val);
50+
q.pop();
51+
if(curr->left)
52+
{
53+
q.push(curr->left);
54+
}
55+
if(curr->right)
56+
{
57+
q.push(curr->right);
58+
}
59+
60+
}
61+
if(f)
62+
reverse(level.begin(),level.end());
63+
f=!f;
64+
res.push_back(level);
65+
}
66+
return res;
67+
}
68+
};

0 commit comments

Comments
 (0)