It is possible to make a case against Hamlet being a hero. He acts impulsively and kills people, then bemoans his actions in soliloquies of self-doubt. Admittedly, Polonius was meddling, but one should check curtains before stabbing them willy-nilly.
Hamlet values honesty and loyalty, yet is totally dishonest, sly and sneaky. He has no loyalty for Ophelia and is so cruel to her that, ultimately, she dies by her own confused actions.
Hamlet does have some incredibly heroic qualities, but a little dissension always helps a discussion, I think.