Binary tree populate right sibling pointers DFS