In the below tree,
typedef struct lcrsNode{
void *item;
struct lcrsNode *parent;
struct lcrsNode *firstChild;
struct lcrsNode *nextSibling;
}lcrsNode;
typedef struct Tree{
lcrsNode *root;
int size; // Number of nodes;
}Tree;
What are the advantages of maintaining parent pointer in a tree node? Does it help in performing DFS without recursion or explicit stack?