Pregunta de entrevista de ltcc

Given a binary tree, design an algorithm to return the nodes' values in a specific order: first by level (left to right), but within each level, reverse the order for every alternate level (i.e., print the first level left to right, the second level right to left, the third level left to right, and so on)