I am having trouble understanding the need for double pointers in the push function of this code (it is an in-order traversal of a binary tree) which I found on geeksforgeek