finish preorder iter