Morris inorder on the sample tree, step by step
===============================================

step | action                                                | threads (from node) | output so far
1    | at 1: thread 5 -> 1, go left                          | [5]                 | []
2    | at 2: thread 4 -> 2, go left                          | [5 4]               | []
3    | at 4: no left child, visit, go right                  | [5 4]               | [4]
4    | at 2: thread from 4 found, remove it, visit, go right | [5]                 | [4 2]
5    | at 5: thread 7 -> 5, go left                          | [5 7]               | [4 2]
6    | at 7: no left child, visit, go right                  | [5 7]               | [4 2 7]
7    | at 5: thread from 7 found, remove it, visit, go right | [5]                 | [4 2 7 5]
8    | at 1: thread from 5 found, remove it, visit, go right | []                  | [4 2 7 5 1]
9    | at 3: no left child, visit, go right                  | []                  | [4 2 7 5 1 3]
10   | at 6: thread 8 -> 6, go left                          | [8]                 | [4 2 7 5 1 3]
11   | at 8: no left child, visit, go right                  | [8]                 | [4 2 7 5 1 3 8]
12   | at 6: thread from 8 found, remove it, visit, go right | []                  | [4 2 7 5 1 3 8 6]
13   | at 9: no left child, visit, go right                  | []                  | [4 2 7 5 1 3 8 6 9]

tree before: 1(2(4,5(7,-)),3(-,6(8,9)))
tree after : 1(2(4,5(7,-)),3(-,6(8,9)))
