Root
/ | \
left mid right
- Stack: Node(Root), result: []
- Stack: Collect(Root), Node(left), Node(mid), Node(right), result: []
- Stack: Collect(Root), Node(left), Node(mid), Collect(right), Node(right_1), Node(right_2), result: []
- Stack: Collect(Root), Node(left), Node(mid), Collect(right), Node(right_1), result: [right_2]
- Stack: Collect(Root), Node(left), Node(mid), Collect(right), Collect(right_1), Node(right_1_1), Node(right_1_2), result: [right_2]
- Stack: Collect(Root), Node(left), Node(mid), Collect(right), Collect(right_1), Node(right_1_1), result: [right_2, right_1_2]
- Stack: Collect(Root), Node(left), Node(mid), Collect(right), Collect(right_1), result: [right_2, right_1_2, right_1_1]
- Stack: Collect(Root), Node(left), Node(mid), Collect(right), result: [right_2, right_1]
- Stack: Collect(Root), Node(left), Node(mid), result: [right]
- Stack: Collect(Root), Node(left), result: [right, mid]
- Stack: Collect(Root), Collect(left), Node(left_1), Node(left_2), result: [right, mid]