def rev_level_order(r): if r is None: return None q = Queue() s = Stack() q.enqueue(r) while not q.is_empty(): n = q.dequeue() s.push(n) if n.rightChild: q.enqueue(n.rightChild) if n.leftChild: q.enqueue(n.leftChild) while not s.is_empty(): print str(s.pop().value)