public void printTree() { root.setLevel(0); Queue<Node> q = new LinkedList<Node>(); q.add(root); while (!q.isEmpty()) { Node node = q.poll(); System.out.println(node); int level = node.getLevel(); Node left = node.getLeft(); Node right = node.getRight(); if (left != null) { left.setLevel(level + 1); q.add(left); } if (right != null) { right.setLevel(level + 1); q.add(right); } } }