/guava/guava/src/com/google/common/collect/TreeTraverser.java
PostOrderNode<T> top = stack.getLast( ) ; while ( !stack.isEmpty( ) ) {
while ( !stack.isEmpty ( ) ) { PostOrderNode<T> top = stack.getLast ( ) ;
this.stack = new ArrayDeque<>(); stack.addLast(expand(root)); } @Override @CheckForNull protected T computeNext() { <extra_id_0> if (top.childIterator.hasNext()) { T child = top.childIterator.next(); stack.addLast(expand(child)); } else { stack.removeLast(); return top.root;