package com.anuragkapur.ds.tree; import java.util.LinkedList; import java.util.Queue; /** * @author: anuragkapur * @since: 09/05/2014 */ public class BreadthFirstTraversal { public static void breadthFirst(TreeNode startingNode) { Queue<TreeNode> queue = new LinkedList<>(); queue.add(startingNode); int count = 0; int level = 1; while(queue.peek() != null) { count ++; TreeNode currentNode = queue.poll(); System.out.print(currentNode.getKey()); if ((count + 1) == Math.pow(2, level)) { level ++; System.out.println(); } if (currentNode.getLeft() != null) { queue.add(currentNode.getLeft()); } if (currentNode.getRight() != null) { queue.add(currentNode.getRight()); } } } }