leetcode soucecode part 1
Merge commit '9837c3053a059c46f6d39556d76ee8ea246a2d71'