Today we cover one more programming exercise question from the interview problems list:
Given a binary tree, print the zigzag level order.
The binary tree is given as 3, 9, 20, -1, -1, 15, 7 where -1 means null
and the tree is
3
9 20
15 7
We have to return the output as
[ (3),
(20, 9),
(7, 15),
]
public static List<List<int>> GetZigZag(Node root)
{
if (root == null) return null;
var output = new List<List<int>>();
var level = new List<int>();
var Q = new Queue();
Q.Enqueue(root);
Q.Enqueue(null);
while (Q.Count > 0)
{
var item = Q.Dequeue();
if (item == null)
{
output.Add(level);
if (Q.Count == 0) break;
level = new List<int>();
Q.Enqueue(null);
continue;
}
level.Add(item);
if (item.right) Q.Enqueue(item.right);
if (item.left) Q.Enqueue(item.left);
}
return output;
}
Given a binary tree, print the zigzag level order.
The binary tree is given as 3, 9, 20, -1, -1, 15, 7 where -1 means null
and the tree is
3
9 20
15 7
We have to return the output as
[ (3),
(20, 9),
(7, 15),
]
public static List<List<int>> GetZigZag(Node root)
{
if (root == null) return null;
var output = new List<List<int>>();
var level = new List<int>();
var Q = new Queue();
Q.Enqueue(root);
Q.Enqueue(null);
while (Q.Count > 0)
{
var item = Q.Dequeue();
if (item == null)
{
output.Add(level);
if (Q.Count == 0) break;
level = new List<int>();
Q.Enqueue(null);
continue;
}
level.Add(item);
if (item.right) Q.Enqueue(item.right);
if (item.left) Q.Enqueue(item.left);
}
return output;
}
No comments:
Post a Comment