Why does Hamlet delay his revenge on King Claudius?

Throughout the whole play, Hamlet constant indecisive and hesitant about avenging the dead of his father   from the time he see the ghost and till the end of his dead. When the ghost King Hamlet appears and tells his son that Claudius killed him by pouring poison in his ear, Hamlet does not act upon the word of the specter.   He takes time to think about what apparition of to him. He contemplates whether it is a true resemblance of his late father or evil spirit . Hamlet attitude changes in a heartbeat and gives himself the challenge to find out the truth and prove it but still he plans things out analyses the situation.   He asks actors to perform a play on the scheme of the death of his father. Here Hamlet has devised whether Claudius truly killed his father. After doing the play involving a murder similar to what the ghost has described, still he unsure how can he confirmed that his uncle killed his father accordance to the play.   Hamlet discovers Claudius’ guilt but has no evidence to present to the people.
Apart from that I would can say that Hamlet is still in grieves of his beloved father death, a person that he looks up as a”greatest man” and the quick remarriage of his mother Gertrude are too much confusing and he is not really sure what is going on to make a quick action upon his father death.   During some parts of the play the reader might be under the impression that Hamlet dislikes his mother but on the contrary he still loves her even though she seems to have left him cornered. Hamlet is aggressive towards his mother hoping to make her understand the actions and consequences that she has invoked but at the same time maybe he also may not wanted to emotionally hurt his mother by killing Claudius, literally lost her husband twice. Hamlet still have the unselfish ethics even he have the ability to avenge for his father   but because of his intentions were beyond the self satisfaction e delay the murder....