I always find "what is your weakness" the toughest question - and that was one of the questions. I find it tough because my answer changes every single time. But in a way it is easy because you can "memorize" it knowing it will most likely be on the interview.
The best way to answer the question - "What is your weakness?" is to answer it in a way that you recognize that you have a weakness (acknowledge it) and that you either took steps or taking steps towards making that area of your life positive. (addressing the issue) For example: I would call myself a workaholic because I tend to dive in to work for hours without little rest which negatively reflects on my life - I get burned out quickly. As of last month, I have taken proactive steps to balance out my life more: I have added 30mins/day more sleep and started to eat more greens for lunch and dinner which has increased my energy level noticeably.