public void printTreeAlternateLevelOrder() {
		Queue<Node> parseQ = new LinkedList<Node>();
		Stack<Node> stk = new Stack<Node>();
		parseQ.add(root);
		parseQ.add(new Node(true));
		int sentinalCount = 1;
		Node node = null;
		while (!parseQ.isEmpty()) {
			node = parseQ.poll(); // remove top node;
			if (node.sentinal) {
				
				
				if (sentinalCount % 2 == 0) {	// we have been adding this to stack
					while (!stk.isEmpty()) {
						Node n = stk.pop();
						System.out.print(n);
						System.out.print(" ");
					}
					stk.clear();
				}

				System.out.println("");
				sentinalCount += 1;
				continue;
			}

			if (sentinalCount % 2 == 1) {
				System.out.print(node);
				System.out.print(" ");
			} else {
				stk.push(node);
			}
			
			if (node.left!=null) {
				parseQ.add(node.left);
			} 
			
			if (node.right!=null) {
				parseQ.add(node.right);
			} 
			

			Node topNode = parseQ.peek();
			if (topNode.sentinal) {
				parseQ.add(new Node(true));
			}
		}
	}