+1  A: 

I don't see where you're calling push, but it appears that you're pushing a Node* when you should be pushing a Node:

::push(Node*&)

it's telling you there's a push for Node const&:

push(const IndexedType&)

where IndexedType = Node

wrang-wrang