Since the dawn of man-kind, humans have always had a need to seek revenge. When someone does us wrong, we look to find ways to get the back, by any means necessary. An eye for an eye. This is the same feeling that Hamlet is experiencing. His father's ghost is the main person who wants revenge, and is trying to get Hamlet to do the job for him. Obviously because he's dead, he can't do the job, but Hamlet can. Hamlet goes into a state of melancholy and over thinking because taking another man's life isn't the easiest thing to do, and he lives in such a twisted world. I don't think Hamlet's nuts because of his ability to reason, patience, and blank.
Reasoning is what separates us, animals. We are able to use hypothetical situations to weigh the pros and cons of a certain decision. Hamlet does this in his famous "To be or not to be" soliloquy. To be or not to be can have various interpretations, but one of them is for Hamlet to kill or not to kill Claudius. In the rest of the soliloquy he's using reasoning to make a rational decision. A sociopath doesn't have the ability to reason, and the have an urge to kill another person, and just do it. Reasoning is what one thing that separates us from sociopaths.
Patience is another quality that Hamlet possesses that sociopaths don't. The ability to wait for the right time to strike, is a huge difference, because sociopaths don't wait. They seek revenge or something that they want to do, and act upon instinct. When Hamlet first meets his dead father's ghost, and he tells him to kill Claudius, he then vows to kill Claudius without any indecision. If Hamlet was a sociopath then at that moment he would have went to where Claudius was and killed him right then, or soon after. Killing another person, especially when they are the king of Denmark isn't as simple as striking them with a knife. It has to be an elaborate and well thought out plan that takes time and definitely patience. Even in the play Hamlet was going to kill Claudius, but he was praying, and Hamlet didn't want to kill him when he was confessing his sins. It will be interesting to see if his patience will pay off.
Although Hamlet kills Polonius, this doesn't make him insane. He acted upon instinct, and made the wrong choice, which happens to a lot of us. He assumed that it was Claudius behind the curtain, and if he knew that it was Polonius, he wouldn't have killed him. Even though he just killed someone, he still is sane because he is the same character that was just considering a decision a few scenes before. Hamlet is a complicated character who is hard on himself, that is just trying to justify his fathers death.
Although Hamlet kills Polonius, this doesn't make him insane. He acted upon instinct, and made the wrong choice, which happens to a lot of us. He assumed that it was Claudius behind the curtain, and if he knew that it was Polonius, he wouldn't have killed him. Even though he just killed someone, he still is sane because he is the same character that was just considering a decision a few scenes before. Hamlet is a complicated character who is hard on himself, that is just trying to justify his fathers death.