I'm guessing that this is an opinion question.
One way to look at it is that the British and Americans are to blame because they hid war materials in a passenger ship making their lives more at risk. The Germans definently shouldn't have sunk a ship with innocent passengers in it but they did also warn the Americans about their safety being at risk at sea.
Another could argue that the British didn't know that a passenger ship would ever get attacked so they probably thought that it would be safe (safer than it really is, at least). The Germans, on the other hand, did know that innocent lives were put at risk.