package com.interview.tree;
import java.util.LinkedList;
import java.util.Queue;
/**
* Youtube link - https://youtu.be/9PHkM0Jri_4
*
* http://www.geeksforgeeks.org/level-order-tree-traversal/
* Test cases
* Empty tree
* Tree with only left side
* Tree with only right side
* Mixed size tree
* Full tree
* complete tree
*/
public class LevelOrderTraversal {
public void levelOrder(Node root){
if(root == null){
System.out.println("Please enter a valid tree!");
return;
}
Queue<Node> queue = new LinkedList<Node>();
queue.offer(root);
System.out.println();
while(queue.size() > 0){
root = queue.poll();
System.out.print(root.data + " ");
if(root.left != null){
queue.add(root.left);
}
if(root.right != null){
queue.add(root.right);
}
}
}
public static void main(String args[]){
LevelOrderTraversal loi = new LevelOrderTraversal();
BinaryTree bt = new BinaryTree();
Node head = null;
head = bt.addNode(10, head);
head = bt.addNode(15, head);
head = bt.addNode(5, head);
head = bt.addNode(7, head);
head = bt.addNode(19, head);
head = bt.addNode(20, head);
head = bt.addNode(-1, head);
loi.levelOrder(head);
}
}