You may have children accounted as DL list and so each Node should have m_next / m_previous node references. + Parent node to have m_first_child reference (if list is circular). + m_parent (Node) reference.
So you need 4 pointers per each non-terminal node. Or 3 pointers for terminals.
Otherwise (vector of children):
You need only m_parent (Node) reference in terminals. And in container nodes additional vector<NodePtr> m_children; to store child references.