Should probably throw std::out_of_range here, rather than returning a NULL node