Use recursion. The details vary depending on exactly how you've defined your tree, but it might look something like this
void visit(TreeNode* node, vector<Node*>& path)
{
// check for NULL
if (node == NULL)
return;
// add node to path
path.push_back(node);
// print the node path
...
// visit left child
visit(node->left, path);
// visit right child
visit(node->right, path);
// remove node from path
path.pop_back();
}
// start at the root
vector<Node*> path;
visit(root, path);