Iterative postorder with two stacks, step by step
=================================================

step | action                                | s1 (bottom..top) | s2 (bottom..top)    | output so far
1    | move 1 to s2, push its children on s1 | [2 3]            | [1]                 | []
2    | move 3 to s2, push its children on s1 | [2 6]            | [1 3]               | []
3    | move 6 to s2, push its children on s1 | [2 8 9]          | [1 3 6]             | []
4    | move 9 to s2, push its children on s1 | [2 8]            | [1 3 6 9]           | []
5    | move 8 to s2, push its children on s1 | [2]              | [1 3 6 9 8]         | []
6    | move 2 to s2, push its children on s1 | [4 5]            | [1 3 6 9 8 2]       | []
7    | move 5 to s2, push its children on s1 | [4 7]            | [1 3 6 9 8 2 5]     | []
8    | move 7 to s2, push its children on s1 | [4]              | [1 3 6 9 8 2 5 7]   | []
9    | move 4 to s2, push its children on s1 | []               | [1 3 6 9 8 2 5 7 4] | []
10   | pop 4 from s2 to output               | []               | [1 3 6 9 8 2 5 7]   | [4]
11   | pop 7 from s2 to output               | []               | [1 3 6 9 8 2 5]     | [4 7]
12   | pop 5 from s2 to output               | []               | [1 3 6 9 8 2]       | [4 7 5]
13   | pop 2 from s2 to output               | []               | [1 3 6 9 8]         | [4 7 5 2]
14   | pop 8 from s2 to output               | []               | [1 3 6 9]           | [4 7 5 2 8]
15   | pop 9 from s2 to output               | []               | [1 3 6]             | [4 7 5 2 8 9]
16   | pop 6 from s2 to output               | []               | [1 3]               | [4 7 5 2 8 9 6]
17   | pop 3 from s2 to output               | []               | [1]                 | [4 7 5 2 8 9 6 3]
18   | pop 1 from s2 to output               | []               | []                  | [4 7 5 2 8 9 6 3 1]
