Reflections in a Golden Eye

The film tells of six central characters, their failures, obsessions and darkest desires. Set at a US Army post in the South in the 1940/50s, it features Major Weldon Penderton (Brando) and his wife Leonora (Taylor). Other central characters are Lieutenant Colonel Morris Langdon (Brian Keith) and his depressed wife Alison (Julie Harris), the Langdons' houseboy Anacleto (Zorro David), and Private Ellgee Williams (Robert Forster).
Major Penderton assigns Private Williams to clear some foliage at his private officer's quarters instead of his usual duty of maintaining the horses and stables. Penderton's wife, Leonora prepares to go horseback riding with Lt. Col. Langdon. Their affair is revealed, as well as Leonora's strong bond with her horse Firebird. Williams is shown to be sympathetic to all the horses in the stable. One day while riding, Langdon, Leonora and Penderton see Williams riding nude and bareback on one of the military horses. Penderton is critical of this to Leonora but his secret interest in the free-spirited Williams is clear.
Leonora and Penderton have an argument that same night, in which Leonora taunts Penderton and strips naked in front of him. Williams watches them from outside the house, and from then on spies on them. He eventually breaks into the house and watches Leonora sleep at night. (She and Penderton have separate bedrooms.) As he continues this practice, Williams starts to go through Leonora's belongings, especially her lingerie and perfume.
Penderton takes Leonora's horse and rides wildly into the woods, passing the naked Williams at high speed. Penderton falls off, catching his foot in the stirrup, and is dragged for a distance. In a fit of uncontrollable rage, he beats the horse. Williams appears still naked, and takes the horse. As Penderton stands mute in the woods, Williams brings the horse back to the stable to tend its wounds. Penderton returns to the house, locked in his room while the party goes on outside. Upon finding out about her horse, Leonora interrupts her party and in front of the guests repeatedly strikes her husband in the face with her riding crop. Penderton becomes infatuated with Williams and starts to follow him around the camp.
After her newborn infant died, Alison Langdon mutilated herself while deeply depressed. Alison's only bonds now are with her effeminate Filipino houseboy Anacleto, who delivers a riveting performance, and with Capt. Murray Weincheck, a cultured and sensitive soldier who is being harassed out of the army by his superiors. Aware of her husband's adultery, Alison decides to divorce him. However, after witnessing Williams in Leonora's room, she becomes traumatized. When she tries to leave him, Langdon commits her to a sanatorium. Langdon tells Leonora and Penderton that Alison was going insane. Soon, Penderton is informed that Alison died of a heart attack, but she may have committed suicide, possibly assisted by Anacleto who disappears soon after her death.
One night Penderton looks out his window and sees Williams outside the house. He thinks Williams is coming to see him, but watches the younger man enter his wife Leonora's room. Penderton goes to the room and shoots Williams dead. The film ends with the camera wildly veering back and forth between the dead body, the screaming Leonora, and Penderton. The opening line of the novel and the film is restated: "There is a fort in the South where a few years ago a murder was committed."

Question: Who killed Williams?
Answer: Penderton