print binary tree in level order
Anonymous
Its a standard BFS question. A simple solution in Java would look like the following: public static void printLevelOrder(BTNode tree){ Queue queue = new LinkedList(); queue.add(tree); while(queue.size()>0){ BTNode node = queue.remove(); System.out.print(node.value+“ ”); if(node.left!=null) queue.add(node.left); if(node.right!=null) queue.add(node.right); } } If you are asked to print new lines for each level, then you could use another queue to track levels and println if the level changes. That would be then like this: public static void printLevels(BSTNode tree) { Queue queue = new java.util.LinkedList(); Queue levels = new java.util.LinkedList(); queue.add(tree); levels.add(0); int lastLevel= 0; while (queue.size() > 0) { BSTNode node = queue.remove(); int level = levels.remove(); if(level!=lastLevel){ System.out.println(); lastLevel = level; } System.out.print(node.value.toString() + " "); if(node.left!=null){ queue.add(node.left); levels.add(level+1); } if(node.right !=null ){ queue.add(node.right); levels.add(level+1); } } }
Check out your Company Bowl for anonymous work chats.