diff --git a/README.md b/README.md index f66470ec2..da00fa045 100644 --- a/README.md +++ b/README.md @@ -8,234 +8,234 @@ LeetCode | # | Title | Solution | Difficulty | |---| ----- | -------- | ---------- | -|285|[Inorder Successor in BST](https://leetcode.com/problems/inorder-successor-in-bst/) ♥ | [Java](./algorithms-java/src/inorderSuccessorInBST/inorderSuccessorInBST.java)|Medium| -|278|[First Bad Version](https://leetcode.com/problems/first-bad-version/)| [Java](./algorithms-java/src/firstBadVersion/firstBadVersion.java)|Easy| -|226|[Valid Anagram](https://leetcode.com/problems/valid-anagram/)| [C++](./algorithms/anagrams/ValidAnagram.cpp)|Easy| -|225|[Different Ways to Add Parentheses](https://leetcode.com/problems/different-ways-to-add-parentheses/)|[C++](./algorithms/differentWaysToAddParentheses/DifferentWaysToAddParentheses.cpp)|Medium| -|224|[Search a 2D Matrix II](https://leetcode.com/problems/search-a-2d-matrix-ii/)|[C++](./algorithms/search2DMatrix/search2DMatrix.II.cpp)|Medium| -|223|[Sliding Window Maximum](https://leetcode.com/problems/sliding-window-maximum/)| [C++](./algorithms/slidingWindowMaximum/SlidingWindowMaximum.cpp)|Hard| -|222|[Product of Array Except Self](https://leetcode.com/problems/product-of-array-except-self/)| [C++](./algorithms/productOfArrayExceptSelf/ProductOfArrayExceptSelf.cpp)|Medium| -|221|[Delete Node in a Linked List](https://leetcode.com/problems/delete-node-in-a-linked-list/)| [C++](./algorithms/deleteNodeInALinkedList/DeleteNodeInALinkedList.cpp)|Easy| -|220|[Lowest Common Ancestor of a Binary Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/)| [C++](./algorithms/lowestCommonAncestorOfABinaryTree/LowestCommonAncestorOfABinaryTree.cpp), [Java](./algorithms-java/src/lowestCommonAncestorOfABinaryTree/lowestCommonAncestorOfABinaryTree.java)|Medium| -|219|[Lowest Common Ancestor of a Binary Search Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/)| [C++](./algorithms/lowestCommonAncestorOfABinarySearchTree/LowestCommonAncestorOfABinarySearchTree.cpp)|Easy| -|218|[Palindrome Linked List](https://leetcode.com/problems/palindrome-linked-list/)| [C++](./algorithms/palindromeLinkedList/PalindromeLinkedList.cpp)|Easy| -|217|[Number of Digit One](https://leetcode.com/problems/number-of-digit-one/)| [C++](./algorithms/numberOfDigitOne/NumberOfDigitOne.cpp)|Medium| -|216|[Implement Queue using Stacks](https://leetcode.com/problems/implement-queue-using-stacks/)| [C++](./algorithms/implementQueueUsingStacks/ImplementQueueUsingStacks.cpp)|Easy| -|215|[Power of Two](https://leetcode.com/problems/power-of-two/)| [C++](./algorithms/powerOfTwo/PowerOfTwo.cpp)|Easy| -|214|[Kth Smallest Element in a BST](https://leetcode.com/problems/kth-smallest-element-in-a-bst/)| [C++](./algorithms/kthSmallestElementInaBST/KthSmallestElementInABst.cpp)|Medium| -|213|[Majority Element II](https://oj.leetcode.com/problems/majority-element-ii/) | [C++](./algorithms/majorityElement/majorityElement.II.cpp)|Medium| -|212|[Summary Ranges](https://leetcode.com/problems/summary-ranges/)| [C++](./algorithms/summaryRanges/SummaryRanges.cpp)|Easy| -|211|[Basic Calculator II](https://leetcode.com/problems/basic-calculator-ii/)| [C++](./algorithms/basicCalculator/BasicCalculator.II.cpp)|Medium| -|210|[Invert Binary Tree](https://leetcode.com/problems/invert-binary-tree/)| [C++](./algorithms/invertBinaryTree/InvertBinaryTree.cpp)|Easy| -|209|[Implement Stack using Queues](https://leetcode.com/problems/implement-stack-using-queues/)| [C++](./algorithms/implementStackUsingQueues/ImplementStackUsingQueues.cpp)|Medium| -|208|[Basic Calculator](https://leetcode.com/problems/basic-calculator/)| [C++](./algorithms/basicCalculator/BasicCalculator.cpp)|Medium| -|207|[Rectangle Area](https://leetcode.com/problems/rectangle-area/)| [C++](./algorithms/rectangleArea/RectangleArea.cpp)|Easy| -|206|[Count Complete Tree Nodes](https://leetcode.com/problems/count-complete-tree-nodes/)| [C++](./algorithms/countCompleteTreeNodes/CountCompleteTreeNodes.cpp)|Medium| -|205|[Maximal Square](https://leetcode.com/problems/maximal-square/)| [C++](./algorithms/maximalSquare/MaximalSquare.cpp)|Medium| -|204|[Contains Duplicate III](https://leetcode.com/problems/contains-duplicate-iii/)| [C++](./algorithms/containsDuplicate/ContainsDuplicate.III.cpp)|Medium| -|203|[Contains Duplicate II](https://leetcode.com/problems/contains-duplicate-ii/)| [C++](./algorithms/containsDuplicate/ContainsDuplicate.II.cpp)|Easy| -|202|[The Skyline Problem](https://leetcode.com/problems/the-skyline-problem/)| [C++](./algorithms/theSkylineProblem/TheSkylineProblem.cpp)|Hard| -|201|[Contains Duplicate](https://leetcode.com/problems/contains-duplicate/)| [C++](./algorithms/containsDuplicate/ContainsDuplicate.cpp)|Easy| -|200|[Combination Sum III](https://leetcode.com/problems/combination-sum-iii/)| [C++](./algorithms/combinationSum/combinationSum.III.cpp)|Medium| -|199|[Kth Largest Element in an Array](https://leetcode.com/problems/kth-largest-element-in-an-array/)| [C++](./algorithms/kthLargestElementInAnArray/KthLargestElementInAnArray.cpp)|Medium| -|198|[Shortest Palindrome](https://leetcode.com/problems/shortest-palindrome/)| [C++](./algorithms/shortestPalindrome/ShortestPalindrome.cpp)|Hard| -|197|[House Robber II](https://leetcode.com/problems/house-robber-ii/)| [C++](./algorithms/houseRobber/houseRobber.II.cpp)|Medium| -|196|[Word Search II](https://leetcode.com/problems/word-search-ii/)| [C++](./algorithms/wordSearch/wordSearch.II.cpp)|Hard| -|195|[Add and Search Word - Data structure design](https://leetcode.com/problems/add-and-search-word-data-structure-design/)| [C++](./algorithms/addAndSearchWord/AddAndSearchWord.cpp)|Medium| -|194|[Course Schedule II](https://leetcode.com/problems/course-schedule-ii/)| [C++](./algorithms/courseSchedule/CourseSchedule.II.cpp)|Medium| -|193|[Minimum Size Subarray Sum](https://leetcode.com/problems/minimum-size-subarray-sum/)| [C++](./algorithms/minimumSizeSubarraySum/MinimumSizeSubarraySum.cpp)|Medium| -|192|[Implement Trie (Prefix Tree)](https://leetcode.com/problems/implement-trie-prefix-tree/)| [C++](./algorithms/implementTriePrefixTree/ImplementTriePrefixTree.cpp)|Medium| -|191|[Course Schedule](https://leetcode.com/problems/course-schedule/)| [C++](./algorithms/courseSchedule/CourseSchedule.cpp)|Medium| -|190|[Reverse Linked List](https://leetcode.com/problems/reverse-linked-list/)| [C++](./algorithms/reverseLinkedList/reverseLinkedList.cpp)|Easy| -|189|[Isomorphic Strings](https://leetcode.com/problems/isomorphic-strings/)| [C++](./algorithms/isomorphicStrings/IsomorphicStrings.cpp)|Easy| -|188|[Count Primes](https://leetcode.com/problems/count-primes/)| [C++](./algorithms/countPrimes/CountPrimes.cpp)|Easy| -|187|[Remove Linked List Elements](https://leetcode.com/problems/remove-linked-list-elements/)| [C++](./algorithms/removeLinkedListElements/RemoveLinkedListElements.cpp)|Easy| -|186|[Happy Number](https://leetcode.com/problems/happy-number/)| [C++](./algorithms/happyNumber/HappyNumber.cpp)|Easy| -|185|[Bitwise AND of Numbers Range](https://leetcode.com/problems/bitwise-and-of-numbers-range/)| [C++](./algorithms/bitwiseANDOfNumbersRange/BitwiseAndOfNumbersRange.cpp)|Medium| -|184|[Number of Islands](https://leetcode.com/problems/number-of-islands/)| [C++](./algorithms/numberOfIslands/NumberOfIslands.cpp)|Medium| -|183|[Binary Tree Right Side View](https://leetcode.com/problems/binary-tree-right-side-view/)| [C++](./algorithms/binaryTreeRightSideView/binaryTreeRightSideView.cpp)|Medium| -|182|[House Robber](https://leetcode.com/problems/house-robber/)| [C++](./algorithms/houseRobber/houseRobber.cpp)|Easy| -|181|[Number of 1 Bits](https://oj.leetcode.com/problems/number-of-1-bits/)| [C++](./algorithms/numberOf1Bits/numberOf1Bits.cpp)|Easy| -|180|[Reverse Bits](https://oj.leetcode.com/problems/reverse-bits/)| [C++](./algorithms/reverseBits/reverseBits.cpp)|Easy| -|179|[Rotate Array](https://oj.leetcode.com/problems/rotate-array/)| [C++](./algorithms/rotateArray/rotateArray.cpp)|Easy| -|178|[Best Time to Buy and Sell Stock IV](https://oj.leetcode.com/problems/best-time-to-buy-and-sell-stock-iv/)| [C++](./algorithms/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.IV.cpp)|Hard| -|177|[Repeated DNA Sequences](https://oj.leetcode.com/problems/repeated-dna-sequences/)| [C++](./algorithms/repeatedDNASequences/repeatedDNASequences.cpp)|Medium| -|176|[Reverse Words in a String II](https://oj.leetcode.com/problems/reverse-words-in-a-string-ii/) ♥ | [C++](./algorithms/reverseWordsInAString/reverseWordsInAString.II.cpp)|Medium| -|175|[Largest Number](https://oj.leetcode.com/problems/largest-number/) | [C++](./algorithms/largestNumber/largestNumber.cpp)|Medium| -|174|[Dungeon Game](https://oj.leetcode.com/problems/dungeon-game/) | [C++](./algorithms/dungeonGame/dungeonGame.cpp)|Hard| -|173|[Binary Search Tree Iterator](https://oj.leetcode.com/problems/binary-search-tree-iterator/) | [C++](./algorithms/binarySearchTreeIterator/binarySearchTreeIterator.cpp), [Java](./algorithms-java/src/binarySearchTreeIterator/binarySearchTreeIterator.java)|Medium| -|172|[Factorial Trailing Zeroes](https://oj.leetcode.com/problems/factorial-trailing-zeroes/) | [C++](./algorithms/factorialTrailingZeroes/factorialTrailingZeroes.cpp)|Easy| -|171|[Excel Sheet Column Number](https://oj.leetcode.com/problems/excel-sheet-column-number/) | [C++](./algorithms/excelSheetColumnNumber/excelSheetColumnNumber.cpp)|Easy| -|170|[Two Sum III - Data structure design](https://oj.leetcode.com/problems/two-sum-iii-data-structure-design/) ♥ | [C++](./algorithms/twoSum/twoSum.III.cpp)|Easy| -|169|[Majority Element](https://oj.leetcode.com/problems/majority-element/) | [C++](./algorithms/majorityElement/majorityElement.cpp)|Easy| -|168|[Excel Sheet Column Title](https://oj.leetcode.com/problems/excel-sheet-column-title/) | [C++](./algorithms/excelSheetColumnTitle/excelSheetColumnTitle.cpp)|Easy| -|167|[Two Sum II - Input array is sorted](https://oj.leetcode.com/problems/two-sum-ii-input-array-is-sorted/) ♥ | [C++](./algorithms/twoSum/twoSum.II.cpp)|Medium| -|166|[Fraction to Recurring Decimal](https://oj.leetcode.com/problems/fraction-to-recurring-decimal/) | [C++](./algorithms/fractionToRecurringDecimal/fractionToRecurringDecimal.cpp)|Medium| -|165|[Compare Version Numbers](https://oj.leetcode.com/problems/compare-version-numbers/) | [C++](./algorithms/compareVersionNumbers/compareVersionNumbers.cpp)|Easy| -|164|[Maximum Gap](https://oj.leetcode.com/problems/maximum-gap/) | [C++](./algorithms/maximumGap/maximumGap.cpp)|Hard| -|163|[Missing Ranges](https://oj.leetcode.com/problems/missing-ranges/) ♥ | [C++](./algorithms/missingRanges/missingRanges.cpp)|Medium| -|162|[Find Peak Element](https://oj.leetcode.com/problems/find-peak-element/) | [C++](./algorithms/findPeakElement/findPeakElement.cpp), [Java](./algorithms-java/src/findPeakElement/findPeakElement.java)|Medium| -|161|[One Edit Distance](https://oj.leetcode.com/problems/one-edit-distance/)♥ | [C++](./algorithms/oneEditDistance/oneEditDistance.cpp)|Medium| -|160|[Intersection of Two Linked Lists](https://oj.leetcode.com/problems/intersection-of-two-linked-lists/) | [C++](./algorithms/intersectionOfTwoLinkedLists/intersectionOfTwoLinkedLists.cpp)|Easy| -|159|[Longest Substring with At Most Two Distinct Characters](https://oj.leetcode.com/problems/longest-substring-with-at-most-two-distinct-characters/) ♥ | [C++](./algorithms/longestSubstringWithAtMostTwoDistinctCharacters/longestSubstringWithAtMostTwoDistinctCharacters.cpp)|Hard| -|158|[Read N Characters Given Read4 II - Call multiple times](https://oj.leetcode.com/problems/read-n-characters-given-read4-ii-call-multiple-times/) ♥ | [C++](./algorithms/readNCharactersGivenRead4/readNCharactersGivenRead4.II.cpp)|Hard| -|157|[Read N Characters Given Read4](https://oj.leetcode.com/problems/read-n-characters-given-read4/) ♥ | [C++](./algorithms/readNCharactersGivenRead4/readNCharactersGivenRead4.cpp)|Easy| -|156|[Binary Tree Upside Down](https://oj.leetcode.com/problems/binary-tree-upside-down/) ♥ | [C++](./algorithms/binaryTreeUpsideDown/binaryTreeUpsideDown.cpp)|Medium| -|155|[Min Stack](https://oj.leetcode.com/problems/min-stack/)| [C++](./algorithms/minStack/minStack.cpp)|Easy| -|154|[Find Minimum in Rotated Sorted Array II](https://oj.leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/)| [C++](./algorithms/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArray.II.cpp)|Hard| -|153|[Find Minimum in Rotated Sorted Array](https://oj.leetcode.com/problems/find-minimum-in-rotated-sorted-array/)| [C++](./algorithms/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArray.cpp), [Java](./algorithms-java/src/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArray.java)|Medium| -|152|[Maximum Product Subarray](https://oj.leetcode.com/problems/maximum-product-subarray/)| [C++](./algorithms/maximumProductSubarray/maximumProductSubarray.cpp)|Medium| -|151|[Reverse Words in a String](https://oj.leetcode.com/problems/reverse-words-in-a-string/)| [C++](./algorithms/reverseWordsInAString/reverseWordsInAString.cpp)|Medium| -|150|[Evaluate Reverse Polish Notation](https://oj.leetcode.com/problems/evaluate-reverse-polish-notation/)| [C++](./algorithms/evaluateReversePolishNotation/evaluateReversePolishNotation.cpp)|Medium| -|149|[Max Points on a Line](https://oj.leetcode.com/problems/max-points-on-a-line/)| [C++](./algorithms/maxPointsOnALine/maxPointsOnALine.cpp)|Hard| -|148|[Sort List](https://oj.leetcode.com/problems/sort-list/)| [C++](./algorithms/sortList/sortList.cpp)|Medium| -|147|[Insertion Sort List](https://oj.leetcode.com/problems/insertion-sort-list/)| [C++](./algorithms/insertionSortList/insertionSortList.cpp)|Medium| -|146|[LRU Cache](https://oj.leetcode.com/problems/lru-cache/)| [C++](./algorithms/LRUCache/LRUCache.cpp)|Hard| -|145|[Binary Tree Postorder Traversal](https://oj.leetcode.com/problems/binary-tree-postorder-traversal/)| [C++](./algorithms/binaryTreePostorderTraversal/binaryTreePostorderTraversal.cpp)|Hard| -|144|[Binary Tree Preorder Traversal](https://oj.leetcode.com/problems/binary-tree-preorder-traversal/)| [C++](./algorithms/binaryTreePreorderTraversal/binaryTreePreorderTraversal.cpp), [Java](./algorithms-java/src/binaryTreePreorderTraversal/binaryTreePreorderTraversal.java)|Medium| -|143|[Reorder List](https://oj.leetcode.com/problems/reorder-list/)| [C++](./algorithms/reorderList/reorderList.cpp)|Medium| -|142|[Linked List Cycle II](https://oj.leetcode.com/problems/linked-list-cycle-ii/)| [C++](./algorithms/linkedListCycle/linkedListCycle.II.cpp)|Medium| -|141|[Linked List Cycle](https://oj.leetcode.com/problems/linked-list-cycle/)| [C++](./algorithms/linkedListCycle/linkedListCycle.cpp)|Medium| -|140|[Word Break II](https://oj.leetcode.com/problems/word-break-ii/)| [C++](./algorithms/wordBreak/wordBreak.II.cpp)|Hard| -|139|[Word Break](https://oj.leetcode.com/problems/word-break/)| [C++](./algorithms/wordBreak/wordBreak.cpp)|Medium| -|138|[Copy List with Random Pointer](https://oj.leetcode.com/problems/copy-list-with-random-pointer/)| [C++](./algorithms/copyListWithRandomPointer/copyListWithRandomPointer.cpp)|Hard| -|137|[Single Number II](https://oj.leetcode.com/problems/single-number-ii/)| [C++](./algorithms/singleNumber/singleNumber.II.cpp)|Medium| -|136|[Single Number](https://oj.leetcode.com/problems/single-number/)| [C++](./algorithms/singleNumber/singleNumber.cpp)|Medium| -|135|[Candy](https://oj.leetcode.com/problems/candy/)| [C++](./algorithms/candy/candy.cpp)|Hard| -|134|[Gas Station](https://oj.leetcode.com/problems/gas-station/)| [C++](./algorithms/gasStation/gasStation.cpp)|Medium| -|133|[Clone Graph](https://oj.leetcode.com/problems/clone-graph/)| [C++](./algorithms/cloneGraph/cloneGraph.cpp)|Medium| -|132|[Palindrome Partitioning II](https://oj.leetcode.com/problems/palindrome-partitioning-ii/)| [C++](./algorithms/palindromePartitioning/palindromePartitioning.II.cpp)|Hard| -|131|[Palindrome Partitioning](https://oj.leetcode.com/problems/palindrome-partitioning/)| [C++](./algorithms/palindromePartitioning/palindromePartitioning.cpp)|Medium| -|130|[Surrounded Regions](https://oj.leetcode.com/problems/surrounded-regions/)| [C++](./algorithms/surroundedRegions/surroundedRegions.cpp)|Medium| -|129|[Sum Root to Leaf Numbers](https://oj.leetcode.com/problems/sum-root-to-leaf-numbers/)| [C++](./algorithms/sumRootToLeafNumber/sumRootToLeafNumber.cpp)|Medium| -|128|[Longest Consecutive Sequence](https://oj.leetcode.com/problems/longest-consecutive-sequence/)| [C++](./algorithms/longestConsecutiveSequence/longestConsecutiveSequence.cpp)|Hard| -|127|[Word Ladder II](https://oj.leetcode.com/problems/word-ladder-ii/)| [C++](./algorithms/wordLadder/wordLadder.II.cpp)|Hard| -|126|[Word Ladder](https://oj.leetcode.com/problems/word-ladder/)| [C++](./algorithms/wordLadder/wordLadder.cpp)|Medium| -|125|[Valid Palindrome](https://oj.leetcode.com/problems/valid-palindrome/)| [C++](./algorithms/validPalindrome/validPalindrome.cpp)|Easy| -|124|[Binary Tree Maximum Path Sum](https://oj.leetcode.com/problems/binary-tree-maximum-path-sum/)| [C++](./algorithms/binaryTreeMaximumPathSum/binaryTreeMaximumPathSum.cpp), [Java](./algorithms-java/src/binaryTreeMaximumPathSum/binaryTreeMaximumPathSum.java)|Hard| -|123|[Best Time to Buy and Sell Stock III](https://oj.leetcode.com/problems/best-time-to-buy-and-sell-stock-iii/)| [C++](./algorithms/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.III.cpp)|Hard| -|122|[Best Time to Buy and Sell Stock II](https://oj.leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/)| [C++](./algorithms/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.II.cpp)|Medium| -|121|[Best Time to Buy and Sell Stock](https://oj.leetcode.com/problems/best-time-to-buy-and-sell-stock/)| [C++](./algorithms/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.cpp)|Medium| -|120|[Triangle](https://oj.leetcode.com/problems/triangle/)| [C++](./algorithms/triangle/triangle.cpp), [C++](./algorithms-java/src/dynamicProgramming/triangle/triangle.java)|Medium| -|119|[Pascal's Triangle II](https://oj.leetcode.com/problems/pascals-triangle-ii/)| [C++](./algorithms/pascalTriangle/pascalTriangle.II.cpp)|Easy| -|118|[Pascal's Triangle](https://oj.leetcode.com/problems/pascals-triangle/)| [C++](./algorithms/pascalTriangle/pascalTriangle.cpp)|Easy| -|117|[Populating Next Right Pointers in Each Node II](https://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/)| [C++](./algorithms/populatingNextRightPointersInEachNode/populatingNextRightPointersInEachNode.II.cpp)|Hard| -|116|[Populating Next Right Pointers in Each Node](https://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node/)| [C++](./algorithms/populatingNextRightPointersInEachNode/populatingNextRightPointersInEachNode.cpp)|Medium| -|115|[Distinct Subsequences](https://oj.leetcode.com/problems/distinct-subsequences/)| [C++](./algorithms/distinctSubsequences/distinctSubsequences.cpp)|Hard| -|114|[Flatten Binary Tree to Linked List](https://oj.leetcode.com/problems/flatten-binary-tree-to-linked-list/)| [C++](./algorithms/flattenBinaryTreeToLinkedList/flattenBinaryTreeToLinkedList.cpp)|Medium| -|113|[Path Sum II](https://oj.leetcode.com/problems/path-sum-ii/)| [C++](./algorithms/pathSum/pathSum.II.cpp)|Medium| -|112|[Path Sum](https://oj.leetcode.com/problems/path-sum/)| [C++](./algorithms/pathSum/pathSum.cpp)|Easy| -|111|[Minimum Depth of Binary Tree](https://oj.leetcode.com/problems/minimum-depth-of-binary-tree/)| [C++](./algorithms/minimumDepthOfBinaryTree/minimumDepthOfBinaryTree.cpp)|Easy| -|110|[Balanced Binary Tree](https://oj.leetcode.com/problems/balanced-binary-tree/)| [C++](./algorithms/balancedBinaryTree/balancedBinaryTree.cpp), [Java](./algorithms-java/src/balancedBinaryTree/balancedBinaryTree.java)|Easy| -|109|[Convert Sorted List to Binary Search Tree](https://oj.leetcode.com/problems/convert-sorted-list-to-binary-search-tree/)| [C++](./algorithms/convertSortedListToBinarySearchTree/convertSortedListToBinarySearchTree.cpp)|Medium| -|108|[Convert Sorted Array to Binary Search Tree](https://oj.leetcode.com/problems/convert-sorted-array-to-binary-search-tree/)| [C++](./algorithms/convertSortedArrayToBinarySearchTree/convertSortedArrayToBinarySearchTree.cpp)|Medium| -|107|[Binary Tree Level Order Traversal II](https://oj.leetcode.com/problems/binary-tree-level-order-traversal-ii/)| [C++](./algorithms/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversal.II.cpp)|Easy| -|106|[Construct Binary Tree from Inorder and Postorder Traversal](https://oj.leetcode.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/)| [C++](./algorithms/constructBinaryTreeFromInorderAndPostorderTraversal/constructBinaryTreeFromInorderAndPostorderTraversal.cpp)|Medium| -|105|[Construct Binary Tree from Preorder and Inorder Traversal](https://oj.leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/)| [C++](./algorithms/constructBinaryTreeFromPreorderAndInorderTraversal/constructBinaryTreeFromPreorderAndInorderTraversal.cpp)|Medium| -|104|[Maximum Depth of Binary Tree](https://oj.leetcode.com/problems/maximum-depth-of-binary-tree/)| [C++](./algorithms/maximumDepthOfBinaryTree/maximumDepthOfBinaryTree.cpp), [Java](./algorithms-java/src/maximumDepthOfBinaryTree/maximumDepthOfBinaryTree.java)|Easy| -|103|[Binary Tree Zigzag Level Order Traversal](https://oj.leetcode.com/problems/binary-tree-zigzag-level-order-traversal/)| [C++](./algorithms/binaryTreeZigzagLevelOrderTraversal/binaryTreeZigzagLevelOrderTraversal.cpp)|Medium| -|102|[Binary Tree Level Order Traversal](https://oj.leetcode.com/problems/binary-tree-level-order-traversal/)| [C++](./algorithms/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversal.cpp), [Java](./algorithms-java/src/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversal.java)|Easy| -|101|[Symmetric Tree](https://oj.leetcode.com/problems/symmetric-tree/)| [C++](./algorithms/symmetricTree/symmetricTree.cpp)|Easy| -|100|[Same Tree](https://oj.leetcode.com/problems/same-tree/)| [C++](./algorithms/sameTree/sameTree.cpp)|Easy| -|99|[Recover Binary Search Tree](https://oj.leetcode.com/problems/recover-binary-search-tree/)| [C++](./algorithms/recoverBinarySearchTree/recoverBinarySearchTree.cpp)|Hard| -|98|[Validate Binary Search Tree](https://oj.leetcode.com/problems/validate-binary-search-tree/)| [C++](./algorithms/validateBinarySearchTree/validateBinarySearchTree.cpp), [Java](./algorithms-java/src/validateBinarySearchTree/validateBinarySearchTree.java)|Medium| -|97|[Interleaving String](https://oj.leetcode.com/problems/interleaving-string/)| [C++](./algorithms/interleavingString/interleavingString.cpp)|Hard| -|96|[Unique Binary Search Trees II](https://oj.leetcode.com/problems/unique-binary-search-trees-ii/)| [C++](./algorithms/uniqueBinarySearchTrees/uniqueBinarySearchTrees.II.cpp)|Medium| -|95|[Unique Binary Search Trees](https://oj.leetcode.com/problems/unique-binary-search-trees/)| [C++](./algorithms/uniqueBinarySearchTrees/uniqueBinarySearchTrees.cpp)|Medium| -|94|[Binary Tree Inorder Traversal](https://oj.leetcode.com/problems/binary-tree-inorder-traversal/)| [C++](./algorithms/binaryTreeInorderTraversal/binaryTreeInorderTraversal.cpp)|Medium| -|93|[Restore IP Addresses](https://oj.leetcode.com/problems/restore-ip-addresses/)| [C++](./algorithms/restoreIPAddresses/restoreIPAddresses.cpp)|Medium| -|92|[Reverse Linked List II](https://oj.leetcode.com/problems/reverse-linked-list-ii/)| [C++](./algorithms/reverseLinkedList/reverseLinkedList.II.cpp)|Medium| -|91|[Subsets II](https://oj.leetcode.com/problems/subsets-ii/)| [C++](./algorithms/subsets/subsets.II.cpp), [Java](./algorithms-java/src/subsets/subsetsII.java)|Medium| -|90|[Decode Ways](https://oj.leetcode.com/problems/decode-ways/)| [C++](./algorithms/decodeWays/decodeWays.cpp)|Medium| -|89|[Gray Code](https://oj.leetcode.com/problems/gray-code/)| [C++](./algorithms/grayCode/grayCode.cpp)|Medium| -|88|[Merge Sorted Array](https://oj.leetcode.com/problems/merge-sorted-array/)| [C++](./algorithms/mergeTwoSortedArray/mergeTwoSortedArray.cpp)|Easy| -|87|[Scramble String](https://oj.leetcode.com/problems/scramble-string/)| [C++](./algorithms/scrambleString/scrambleString.cpp)|Hard| -|86|[Partition List](https://oj.leetcode.com/problems/partition-list/)| [C++](./algorithms/partitionList/partitionList.cpp)|Medium| -|85|[Maximal Rectangle](https://oj.leetcode.com/problems/maximal-rectangle/)| [C++](./algorithms/maximalRectangle/maximalRectangle.cpp)|Hard| -|84|[Largest Rectangle in Histogram](https://oj.leetcode.com/problems/largest-rectangle-in-histogram/)| [C++](./algorithms/largestRectangleInHistogram/largestRectangleInHistogram.cpp)|Hard| -|83|[Remove Duplicates from Sorted List II](https://oj.leetcode.com/problems/remove-duplicates-from-sorted-list-ii/)| [C++](./algorithms/removeDuplicatesFromSortedList/removeDuplicatesFromSortedList.II.cpp)|Medium| -|82|[Remove Duplicates from Sorted List](https://oj.leetcode.com/problems/remove-duplicates-from-sorted-list/)| [C++](./algorithms/removeDuplicatesFromSortedList/removeDuplicatesFromSortedList.cpp)|Easy| -|81|[Search in Rotated Sorted Array II](https://oj.leetcode.com/problems/search-in-rotated-sorted-array-ii/)| [C++](./algorithms/searchInRotatedSortedArray/searchInRotatedSortedArray.II.cpp)|Medium| -|80|[Remove Duplicates from Sorted Array II](https://oj.leetcode.com/problems/remove-duplicates-from-sorted-array-ii/)| [C++](./algorithms/removeDuplicatesFromSortedArray/removeDuplicatesFromSortedArray.II.cpp)|Medium| -|79|[Word Search](https://oj.leetcode.com/problems/word-search/)| [C++](./algorithms/wordSearch/wordSearch.cpp)|Medium| -|78|[Subsets](https://oj.leetcode.com/problems/subsets/)| [C++](./algorithms/subsets/subsets.cpp), [Java](./algorithms-java/src/subsets/subsets.java)|Medium| -|77|[Combinations](https://oj.leetcode.com/problems/combinations/)| [C++](./algorithms/combinations/combinations.cpp)|Medium| -|76|[Minimum Window Substring](https://oj.leetcode.com/problems/minimum-window-substring/)| [C++](./algorithms/minimumWindowSubstring/minimumWindowSubstring.cpp)|Hard| -|75|[Sort Colors](https://oj.leetcode.com/problems/sort-colors/)| [C++](./algorithms/sortColors/sortColors.cpp)|Medium| -|74|[Search a 2D Matrix](https://oj.leetcode.com/problems/search-a-2d-matrix/)| [C++](./algorithms/search2DMatrix/search2DMatrix.cpp), [Java](./algorithms-java/src/search2DMatrix/search2DMatrix.java)|Medium| -|73|[Set Matrix Zeroes](https://oj.leetcode.com/problems/set-matrix-zeroes/)| [C++](./algorithms/setMatrixZeroes/setMatrixZeroes.cpp)|Medium| -|72|[Edit Distance](https://oj.leetcode.com/problems/edit-distance/)| [C++](./algorithms/editDistance/editDistance.cpp)|Hard| -|71|[Simplify Path](https://oj.leetcode.com/problems/simplify-path/)| [C++](./algorithms/simplifyPath/simplifyPath.cpp)|Medium| -|70|[Climbing Stairs](https://oj.leetcode.com/problems/climbing-stairs/)| [C++](./algorithms/climbStairs/climbStairs.cpp), [Java](./algorithms-java/src/dynamicProgramming/climbStairs/climbStairs.java)|Easy| -|69|[Sqrt(x)](https://oj.leetcode.com/problems/sqrtx/)| [C++](./algorithms/sqrt/sqrt.cpp)|Medium| -|68|[Text Justification](https://oj.leetcode.com/problems/text-justification/)| [C++](./algorithms/textJustification/textJustification.cpp)|Hard| -|67|[Plus One](https://oj.leetcode.com/problems/plus-one/)| [C++](./algorithms/plusOne/plusOne.cpp)|Easy| -|66|[Valid Number](https://oj.leetcode.com/problems/valid-number/)| [C++](./algorithms/validNumber/validNumber.cpp)|Easy| -|65|[Add Binary](https://oj.leetcode.com/problems/add-binary/)| [C++](./algorithms/addBinary/addBinary.cpp)|Easy| -|64|[Merge Two Sorted Lists](https://oj.leetcode.com/problems/merge-two-sorted-lists/)| [C++](./algorithms/mergeTwoSortedList/mergeTwoSortedList.cpp)|Easy| -|63|[Minimum Path Sum](https://oj.leetcode.com/problems/minimum-path-sum/)| [C++](./algorithms/minimumPathSum/minimumPathSum.cpp), [Java](./algorithms-java/src/dynamicProgramming/minimumPathSum/minimumPathSum.java)|Medium| -|62|[Unique Paths II](https://oj.leetcode.com/problems/unique-paths-ii/)| [C++](./algorithms/uniquePaths/uniquePaths.II.cpp), [Java](./algorithms-java/src/dynamicProgramming/uniquePaths/uniquePathsII.java)|Medium| -|61|[Unique Paths](https://oj.leetcode.com/problems/unique-paths/)| [C++](./algorithms/uniquePaths/uniquePaths.cpp), [Java](./algorithms-java/src/dynamicProgramming/uniquePaths/uniquePaths.java)|Medium| -|60|[Rotate List](https://oj.leetcode.com/problems/rotate-list/)| [C++](./algorithms/rotateList/rotateList.cpp)|Medium| -|59|[Permutation Sequence](https://oj.leetcode.com/problems/permutation-sequence/)| [C++](./algorithms/permutationSequence/permutationSequence.cpp)|Medium| -|58|[Spiral Matrix II](https://oj.leetcode.com/problems/spiral-matrix-ii/)| [C++](./algorithms/spiralMatrix/spiralMatrix.II.cpp)|Medium| -|57|[Length of Last Word](https://oj.leetcode.com/problems/length-of-last-word/)| [C++](./algorithms/lengthOfLastWord/lengthOfLastWord.cpp)|Easy| -|56|[Insert Interval](https://oj.leetcode.com/problems/insert-interval/)| [C++](./algorithms/insertInterval/insertInterval.cpp)|Hard| -|55|[Merge Intervals](https://oj.leetcode.com/problems/merge-intervals/)| [C++](./algorithms/mergeIntervals/mergeIntervals.cpp)|Hard| -|54|[Jump Game](https://oj.leetcode.com/problems/jump-game/)| [C++](./algorithms/jumpGame/jumpGame.cpp)|Medium| -|53|[Spiral Matrix](https://oj.leetcode.com/problems/spiral-matrix/)| [C++](./algorithms/spiralMatrix/spiralMatrix.cpp)|Medium| -|52|[Maximum Subarray](https://oj.leetcode.com/problems/maximum-subarray/)| [C++](./algorithms/maximumSubArray/maximumSubArray.cpp)|Medium| -|51|[N-Queens II](https://oj.leetcode.com/problems/n-queens-ii/)| [C++](./algorithms/nQueens/nQueuens.II.cpp)|Hard| -|50|[N-Queens](https://oj.leetcode.com/problems/n-queens/)| [C++](./algorithms/nQueens/nQueuens.cpp)|Hard| -|49|["Pow(x, n)"](https://oj.leetcode.com/problems/powx-n/)| [C++](./algorithms/pow/pow.cpp)|Medium| -|48|[Group Anagrams](https://oj.leetcode.com/problems/anagrams/)| [C++](./algorithms/anagrams/GroupAnagrams.cpp)|Medium| -|47|[Rotate Image](https://oj.leetcode.com/problems/rotate-image/)| [C++](./algorithms/rotateImage/rotateImage.cpp)|Medium| -|46|[Permutations II](https://oj.leetcode.com/problems/permutations-ii/)| [C++](./algorithms/permutations/permutations.II.cpp)|Hard| -|45|[Permutations](https://oj.leetcode.com/problems/permutations/)| [C++](./algorithms/permutations/permutations.cpp)|Medium| -|44|[Jump Game II](https://oj.leetcode.com/problems/jump-game-ii/)| [C++](./algorithms/jumpGame/jumpGame.II.cpp)|Hard| -|43|[Wildcard Matching](https://oj.leetcode.com/problems/wildcard-matching/)| [C++](./algorithms/wildcardMatching/wildcardMatching.cpp)|Hard| -|42|[Multiply Strings](https://oj.leetcode.com/problems/multiply-strings/)| [C++](./algorithms/multiplyStrings/multiplyStrings.cpp)|Medium| -|41|[Trapping Rain Water](https://oj.leetcode.com/problems/trapping-rain-water/)| [C++](./algorithms/trappingRainWater/trappingRainWater.cpp)|Hard| -|40|[First Missing Positive](https://oj.leetcode.com/problems/first-missing-positive/)| [C++](./algorithms/firstMissingPositive/firstMissingPositive.cpp)|Hard| -|39|[Combination Sum II](https://oj.leetcode.com/problems/combination-sum-ii/)| [C++](./algorithms/combinationSum/combinationSum.II.cpp)|Medium| -|38|[Combination Sum](https://oj.leetcode.com/problems/combination-sum/)| [C++](./algorithms/combinationSum/combinationSum.cpp)|Medium| -|37|[Count and Say](https://oj.leetcode.com/problems/count-and-say/)| [C++](./algorithms/countAndSay/countAndSay.cpp)|Easy| -|36|[Sudoku Solver](https://oj.leetcode.com/problems/sudoku-solver/)| [C++](./algorithms/sudokuSolver/sudokuSolver.cpp)|Hard| -|35|[Valid Sudoku](https://oj.leetcode.com/problems/valid-sudoku/)| [C++](./algorithms/validSudoku/validSudoku.cpp)|Easy| -|34|[Search Insert Position](https://oj.leetcode.com/problems/search-insert-position/)| [C++](./algorithms/searchInsertPosition/searchInsertPosition.cpp), [Java](./algorithms-java/src/searchInsertPosition/searchInsertPosition.java)|Medium| -|33|[Search for a Range](https://oj.leetcode.com/problems/search-for-a-range/)| [C++](./algorithms/searchForRange/searchForRange.cpp), [Java](./algorithms-java/src/searchForRange/searchForRange.java)|Medium| -|32|[Search in Rotated Sorted Array](https://oj.leetcode.com/problems/search-in-rotated-sorted-array/)| [C++](./algorithms/searchInRotatedSortedArray/searchInRotatedSortedArray.cpp), [Java](./algorithms-java/src/searchInRotatedSortedArray/searchInRotatedSortedArray.java)|Hard| -|31|[Longest Valid Parentheses](https://oj.leetcode.com/problems/longest-valid-parentheses/)| [C++](./algorithms/longestValidParentheses/longestValidParentheses.cpp)|Hard| -|30|[Next Permutation](https://oj.leetcode.com/problems/next-permutation/)| [C++](./algorithms/nextPermutation/nextPermutation.cpp)|Medium| -|29|[Substring with Concatenation of All Words](https://oj.leetcode.com/problems/substring-with-concatenation-of-all-words/)| [C++](./algorithms/substringWithConcatenationOfAllWords/substringWithConcatenationOfAllWords.cpp)|Hard| -|28|[Divide Two Integers](https://oj.leetcode.com/problems/divide-two-integers/)| [C++](./algorithms/divideTwoInt/divideTwoInt.cpp)|Medium| -|27|[Implement strStr()](https://oj.leetcode.com/problems/implement-strstr/)| [C++](./algorithms/strStr/strStr.cpp), [Java](./algorithms-java/src/strStr/strStr.java)|Easy| -|26|[Remove Element](https://oj.leetcode.com/problems/remove-element/)| [C++](./algorithms/removeElement/removeElement.cpp)|Easy| -|25|[Remove Duplicates from Sorted Array](https://oj.leetcode.com/problems/remove-duplicates-from-sorted-array/)| [C++](./algorithms/removeDuplicatesFromSortedArray/removeDuplicatesFromSortedArray.cpp)|Easy| -|24|[Reverse Nodes in k-Group](https://oj.leetcode.com/problems/reverse-nodes-in-k-group/)| [C++](./algorithms/reverseNodesInKGroup/reverseNodesInKGroup.cpp)|Hard| -|23|[Swap Nodes in Pairs](https://oj.leetcode.com/problems/swap-nodes-in-pairs/)| [C++](./algorithms/swapNodesInPairs/swapNodesInPairs.cpp)|Medium| -|22|[Merge k Sorted Lists](https://oj.leetcode.com/problems/merge-k-sorted-lists/)| [C++](./algorithms/mergeKSortedLists/mergeKSortedLists.cpp)|Hard| -|21|[Generate Parentheses](https://oj.leetcode.com/problems/generate-parentheses/)| [C++](./algorithms/generateParentheses/generateParentheses.cpp)|Medium| -|20|[Valid Parentheses](https://oj.leetcode.com/problems/valid-parentheses/)| [C++](./algorithms/validParentheses/validParentheses.cpp)|Easy| -|19|[Remove Nth Node From End of List](https://oj.leetcode.com/problems/remove-nth-node-from-end-of-list/)| [C++](./algorithms/removeNthNodeFromEndOfList/removeNthNodeFromEndOfList.cpp)|Easy| -|18|[Letter Combinations of a Phone Number](https://oj.leetcode.com/problems/letter-combinations-of-a-phone-number/)| [C++](./algorithms/letterCombinationsOfAPhoneNumber/letterCombinationsOfAPhoneNumber.cpp)|Medium| -|17|[4Sum](https://oj.leetcode.com/problems/4sum/)| [C++](./algorithms/4Sum/4Sum.cpp)|Medium| -|16|[3Sum Closest](https://oj.leetcode.com/problems/3sum-closest/)| [C++](./algorithms/3SumClosest/3SumClosest.cpp)|Medium| -|15|[3Sum](https://oj.leetcode.com/problems/3sum/)| [C++](./algorithms/3Sum/3Sum.cpp)|Medium| -|14|[Longest Common Prefix](https://oj.leetcode.com/problems/longest-common-prefix/)| [C++](./algorithms/longestCommonPrefix/longestCommonPrefix.cpp)|Easy| -|13|[Roman to Integer](https://oj.leetcode.com/problems/roman-to-integer/)| [C++](./algorithms/romanToInteger/romanToInteger.cpp)|Easy| -|12|[Integer to Roman](https://oj.leetcode.com/problems/integer-to-roman/)| [C++](./algorithms/integerToRoman/integerToRoman.cpp)|Medium| -|11|[Container With Most Water](https://oj.leetcode.com/problems/container-with-most-water/)| [C++](./algorithms/containerWithMostWater/containerWithMostWater.cpp)|Medium| -|10|[Regular Expression Matching](https://oj.leetcode.com/problems/regular-expression-matching/)| [C++](./algorithms/regularExpressionMatching/regularExpressionMatching.cpp)|Hard| -|9|[Palindrome Number](https://oj.leetcode.com/problems/palindrome-number/)| [C++](./algorithms/palindromeNumber/palindromeNumber.cpp)|Easy| -|8|[String to Integer (atoi)](https://oj.leetcode.com/problems/string-to-integer-atoi/)| [C++](./algorithms/stringToIntegerAtoi/stringToIntegerAtoi.cpp)|Easy| -|7|[Reverse Integer](https://oj.leetcode.com/problems/reverse-integer/)| [C++](./algorithms/reverseInteger/reverseInteger.cpp)|Easy| -|6|[ZigZag Conversion](https://oj.leetcode.com/problems/zigzag-conversion/)| [C++](./algorithms/zigZagConversion/zigZagConversion.cpp)|Easy| -|5|[Longest Palindromic Substring](https://oj.leetcode.com/problems/longest-palindromic-substring/)| [C++](./algorithms/longestPalindromicSubstring/longestPalindromicSubstring.cpp)|Medium| -|4|[Add Two Numbers](https://oj.leetcode.com/problems/add-two-numbers/)| [C++](./algorithms/addTwoNumbers/addTwoNumbers.cpp)|Medium| -|3|[Longest Substring Without Repeating Characters](https://oj.leetcode.com/problems/longest-substring-without-repeating-characters/)| [C++](./algorithms/longestSubstringWithoutRepeatingCharacters/longestSubstringWithoutRepeatingCharacters.cpp)|Medium| -|2|[Median of Two Sorted Arrays](https://oj.leetcode.com/problems/median-of-two-sorted-arrays/)| [C++](./algorithms/medianOfTwoSortedArrays/medianOfTwoSortedArrays.cpp)|Hard| -|1|[Two Sum](https://oj.leetcode.com/problems/two-sum/)| [C++](./algorithms/twoSum/twoSum.cpp)|Medium| +|285|[Inorder Successor in BST](https://leetcode.com/problems/inorder-successor-in-bst/) ♥ | [Java](./algorithms/java/src/inorderSuccessorInBST/inorderSuccessorInBST.java)|Medium| +|278|[First Bad Version](https://leetcode.com/problems/first-bad-version/)| [Java](./algorithms/java/src/firstBadVersion/firstBadVersion.java)|Easy| +|226|[Valid Anagram](https://leetcode.com/problems/valid-anagram/)| [C++](./algorithms/cpp/anagrams/ValidAnagram.cpp)|Easy| +|225|[Different Ways to Add Parentheses](https://leetcode.com/problems/different-ways-to-add-parentheses/)|[C++](./algorithms/cpp/differentWaysToAddParentheses/DifferentWaysToAddParentheses.cpp)|Medium| +|224|[Search a 2D Matrix II](https://leetcode.com/problems/search-a-2d-matrix-ii/)|[C++](./algorithms/cpp/search2DMatrix/search2DMatrix.II.cpp)|Medium| +|223|[Sliding Window Maximum](https://leetcode.com/problems/sliding-window-maximum/)| [C++](./algorithms/cpp/slidingWindowMaximum/SlidingWindowMaximum.cpp)|Hard| +|222|[Product of Array Except Self](https://leetcode.com/problems/product-of-array-except-self/)| [C++](./algorithms/cpp/productOfArrayExceptSelf/ProductOfArrayExceptSelf.cpp)|Medium| +|221|[Delete Node in a Linked List](https://leetcode.com/problems/delete-node-in-a-linked-list/)| [C++](./algorithms/cpp/deleteNodeInALinkedList/DeleteNodeInALinkedList.cpp)|Easy| +|220|[Lowest Common Ancestor of a Binary Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/)| [C++](./algorithms/cpp/lowestCommonAncestorOfABinaryTree/LowestCommonAncestorOfABinaryTree.cpp), [Java](./algorithms/java/src/lowestCommonAncestorOfABinaryTree/lowestCommonAncestorOfABinaryTree.java)|Medium| +|219|[Lowest Common Ancestor of a Binary Search Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/)| [C++](./algorithms/cpp/lowestCommonAncestorOfABinarySearchTree/LowestCommonAncestorOfABinarySearchTree.cpp)|Easy| +|218|[Palindrome Linked List](https://leetcode.com/problems/palindrome-linked-list/)| [C++](./algorithms/cpp/palindromeLinkedList/PalindromeLinkedList.cpp)|Easy| +|217|[Number of Digit One](https://leetcode.com/problems/number-of-digit-one/)| [C++](./algorithms/cpp/numberOfDigitOne/NumberOfDigitOne.cpp)|Medium| +|216|[Implement Queue using Stacks](https://leetcode.com/problems/implement-queue-using-stacks/)| [C++](./algorithms/cpp/implementQueueUsingStacks/ImplementQueueUsingStacks.cpp)|Easy| +|215|[Power of Two](https://leetcode.com/problems/power-of-two/)| [C++](./algorithms/cpp/powerOfTwo/PowerOfTwo.cpp)|Easy| +|214|[Kth Smallest Element in a BST](https://leetcode.com/problems/kth-smallest-element-in-a-bst/)| [C++](./algorithms/cpp/kthSmallestElementInaBST/KthSmallestElementInABst.cpp)|Medium| +|213|[Majority Element II](https://oj.leetcode.com/problems/majority-element-ii/) | [C++](./algorithms/cpp/majorityElement/majorityElement.II.cpp)|Medium| +|212|[Summary Ranges](https://leetcode.com/problems/summary-ranges/)| [C++](./algorithms/cpp/summaryRanges/SummaryRanges.cpp)|Easy| +|211|[Basic Calculator II](https://leetcode.com/problems/basic-calculator-ii/)| [C++](./algorithms/cpp/basicCalculator/BasicCalculator.II.cpp)|Medium| +|210|[Invert Binary Tree](https://leetcode.com/problems/invert-binary-tree/)| [C++](./algorithms/cpp/invertBinaryTree/InvertBinaryTree.cpp)|Easy| +|209|[Implement Stack using Queues](https://leetcode.com/problems/implement-stack-using-queues/)| [C++](./algorithms/cpp/implementStackUsingQueues/ImplementStackUsingQueues.cpp)|Medium| +|208|[Basic Calculator](https://leetcode.com/problems/basic-calculator/)| [C++](./algorithms/cpp/basicCalculator/BasicCalculator.cpp)|Medium| +|207|[Rectangle Area](https://leetcode.com/problems/rectangle-area/)| [C++](./algorithms/cpp/rectangleArea/RectangleArea.cpp)|Easy| +|206|[Count Complete Tree Nodes](https://leetcode.com/problems/count-complete-tree-nodes/)| [C++](./algorithms/cpp/countCompleteTreeNodes/CountCompleteTreeNodes.cpp)|Medium| +|205|[Maximal Square](https://leetcode.com/problems/maximal-square/)| [C++](./algorithms/cpp/maximalSquare/MaximalSquare.cpp)|Medium| +|204|[Contains Duplicate III](https://leetcode.com/problems/contains-duplicate-iii/)| [C++](./algorithms/cpp/containsDuplicate/ContainsDuplicate.III.cpp)|Medium| +|203|[Contains Duplicate II](https://leetcode.com/problems/contains-duplicate-ii/)| [C++](./algorithms/cpp/containsDuplicate/ContainsDuplicate.II.cpp)|Easy| +|202|[The Skyline Problem](https://leetcode.com/problems/the-skyline-problem/)| [C++](./algorithms/cpp/theSkylineProblem/TheSkylineProblem.cpp)|Hard| +|201|[Contains Duplicate](https://leetcode.com/problems/contains-duplicate/)| [C++](./algorithms/cpp/containsDuplicate/ContainsDuplicate.cpp)|Easy| +|200|[Combination Sum III](https://leetcode.com/problems/combination-sum-iii/)| [C++](./algorithms/cpp/combinationSum/combinationSum.III.cpp)|Medium| +|199|[Kth Largest Element in an Array](https://leetcode.com/problems/kth-largest-element-in-an-array/)| [C++](./algorithms/cpp/kthLargestElementInAnArray/KthLargestElementInAnArray.cpp)|Medium| +|198|[Shortest Palindrome](https://leetcode.com/problems/shortest-palindrome/)| [C++](./algorithms/cpp/shortestPalindrome/ShortestPalindrome.cpp)|Hard| +|197|[House Robber II](https://leetcode.com/problems/house-robber-ii/)| [C++](./algorithms/cpp/houseRobber/houseRobber.II.cpp)|Medium| +|196|[Word Search II](https://leetcode.com/problems/word-search-ii/)| [C++](./algorithms/cpp/wordSearch/wordSearch.II.cpp)|Hard| +|195|[Add and Search Word - Data structure design](https://leetcode.com/problems/add-and-search-word-data-structure-design/)| [C++](./algorithms/cpp/addAndSearchWord/AddAndSearchWord.cpp)|Medium| +|194|[Course Schedule II](https://leetcode.com/problems/course-schedule-ii/)| [C++](./algorithms/cpp/courseSchedule/CourseSchedule.II.cpp)|Medium| +|193|[Minimum Size Subarray Sum](https://leetcode.com/problems/minimum-size-subarray-sum/)| [C++](./algorithms/cpp/minimumSizeSubarraySum/MinimumSizeSubarraySum.cpp)|Medium| +|192|[Implement Trie (Prefix Tree)](https://leetcode.com/problems/implement-trie-prefix-tree/)| [C++](./algorithms/cpp/implementTriePrefixTree/ImplementTriePrefixTree.cpp)|Medium| +|191|[Course Schedule](https://leetcode.com/problems/course-schedule/)| [C++](./algorithms/cpp/courseSchedule/CourseSchedule.cpp)|Medium| +|190|[Reverse Linked List](https://leetcode.com/problems/reverse-linked-list/)| [C++](./algorithms/cpp/reverseLinkedList/reverseLinkedList.cpp)|Easy| +|189|[Isomorphic Strings](https://leetcode.com/problems/isomorphic-strings/)| [C++](./algorithms/cpp/isomorphicStrings/IsomorphicStrings.cpp)|Easy| +|188|[Count Primes](https://leetcode.com/problems/count-primes/)| [C++](./algorithms/cpp/countPrimes/CountPrimes.cpp)|Easy| +|187|[Remove Linked List Elements](https://leetcode.com/problems/remove-linked-list-elements/)| [C++](./algorithms/cpp/removeLinkedListElements/RemoveLinkedListElements.cpp)|Easy| +|186|[Happy Number](https://leetcode.com/problems/happy-number/)| [C++](./algorithms/cpp/happyNumber/HappyNumber.cpp)|Easy| +|185|[Bitwise AND of Numbers Range](https://leetcode.com/problems/bitwise-and-of-numbers-range/)| [C++](./algorithms/cpp/bitwiseANDOfNumbersRange/BitwiseAndOfNumbersRange.cpp)|Medium| +|184|[Number of Islands](https://leetcode.com/problems/number-of-islands/)| [C++](./algorithms/cpp/numberOfIslands/NumberOfIslands.cpp)|Medium| +|183|[Binary Tree Right Side View](https://leetcode.com/problems/binary-tree-right-side-view/)| [C++](./algorithms/cpp/binaryTreeRightSideView/binaryTreeRightSideView.cpp)|Medium| +|182|[House Robber](https://leetcode.com/problems/house-robber/)| [C++](./algorithms/cpp/houseRobber/houseRobber.cpp)|Easy| +|181|[Number of 1 Bits](https://oj.leetcode.com/problems/number-of-1-bits/)| [C++](./algorithms/cpp/numberOf1Bits/numberOf1Bits.cpp)|Easy| +|180|[Reverse Bits](https://oj.leetcode.com/problems/reverse-bits/)| [C++](./algorithms/cpp/reverseBits/reverseBits.cpp)|Easy| +|179|[Rotate Array](https://oj.leetcode.com/problems/rotate-array/)| [C++](./algorithms/cpp/rotateArray/rotateArray.cpp)|Easy| +|178|[Best Time to Buy and Sell Stock IV](https://oj.leetcode.com/problems/best-time-to-buy-and-sell-stock-iv/)| [C++](./algorithms/cpp/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.IV.cpp)|Hard| +|177|[Repeated DNA Sequences](https://oj.leetcode.com/problems/repeated-dna-sequences/)| [C++](./algorithms/cpp/repeatedDNASequences/repeatedDNASequences.cpp)|Medium| +|176|[Reverse Words in a String II](https://oj.leetcode.com/problems/reverse-words-in-a-string-ii/) ♥ | [C++](./algorithms/cpp/reverseWordsInAString/reverseWordsInAString.II.cpp)|Medium| +|175|[Largest Number](https://oj.leetcode.com/problems/largest-number/) | [C++](./algorithms/cpp/largestNumber/largestNumber.cpp)|Medium| +|174|[Dungeon Game](https://oj.leetcode.com/problems/dungeon-game/) | [C++](./algorithms/cpp/dungeonGame/dungeonGame.cpp)|Hard| +|173|[Binary Search Tree Iterator](https://oj.leetcode.com/problems/binary-search-tree-iterator/) | [C++](./algorithms/cpp/binarySearchTreeIterator/binarySearchTreeIterator.cpp), [Java](./algorithms/java/src/binarySearchTreeIterator/binarySearchTreeIterator.java)|Medium| +|172|[Factorial Trailing Zeroes](https://oj.leetcode.com/problems/factorial-trailing-zeroes/) | [C++](./algorithms/cpp/factorialTrailingZeroes/factorialTrailingZeroes.cpp)|Easy| +|171|[Excel Sheet Column Number](https://oj.leetcode.com/problems/excel-sheet-column-number/) | [C++](./algorithms/cpp/excelSheetColumnNumber/excelSheetColumnNumber.cpp)|Easy| +|170|[Two Sum III - Data structure design](https://oj.leetcode.com/problems/two-sum-iii-data-structure-design/) ♥ | [C++](./algorithms/cpp/twoSum/twoSum.III.cpp)|Easy| +|169|[Majority Element](https://oj.leetcode.com/problems/majority-element/) | [C++](./algorithms/cpp/majorityElement/majorityElement.cpp)|Easy| +|168|[Excel Sheet Column Title](https://oj.leetcode.com/problems/excel-sheet-column-title/) | [C++](./algorithms/cpp/excelSheetColumnTitle/excelSheetColumnTitle.cpp)|Easy| +|167|[Two Sum II - Input array is sorted](https://oj.leetcode.com/problems/two-sum-ii-input-array-is-sorted/) ♥ | [C++](./algorithms/cpp/twoSum/twoSum.II.cpp)|Medium| +|166|[Fraction to Recurring Decimal](https://oj.leetcode.com/problems/fraction-to-recurring-decimal/) | [C++](./algorithms/cpp/fractionToRecurringDecimal/fractionToRecurringDecimal.cpp)|Medium| +|165|[Compare Version Numbers](https://oj.leetcode.com/problems/compare-version-numbers/) | [C++](./algorithms/cpp/compareVersionNumbers/compareVersionNumbers.cpp)|Easy| +|164|[Maximum Gap](https://oj.leetcode.com/problems/maximum-gap/) | [C++](./algorithms/cpp/maximumGap/maximumGap.cpp)|Hard| +|163|[Missing Ranges](https://oj.leetcode.com/problems/missing-ranges/) ♥ | [C++](./algorithms/cpp/missingRanges/missingRanges.cpp)|Medium| +|162|[Find Peak Element](https://oj.leetcode.com/problems/find-peak-element/) | [C++](./algorithms/cpp/findPeakElement/findPeakElement.cpp), [Java](./algorithms/java/src/findPeakElement/findPeakElement.java)|Medium| +|161|[One Edit Distance](https://oj.leetcode.com/problems/one-edit-distance/)♥ | [C++](./algorithms/cpp/oneEditDistance/oneEditDistance.cpp)|Medium| +|160|[Intersection of Two Linked Lists](https://oj.leetcode.com/problems/intersection-of-two-linked-lists/) | [C++](./algorithms/cpp/intersectionOfTwoLinkedLists/intersectionOfTwoLinkedLists.cpp)|Easy| +|159|[Longest Substring with At Most Two Distinct Characters](https://oj.leetcode.com/problems/longest-substring-with-at-most-two-distinct-characters/) ♥ | [C++](./algorithms/cpp/longestSubstringWithAtMostTwoDistinctCharacters/longestSubstringWithAtMostTwoDistinctCharacters.cpp)|Hard| +|158|[Read N Characters Given Read4 II - Call multiple times](https://oj.leetcode.com/problems/read-n-characters-given-read4-ii-call-multiple-times/) ♥ | [C++](./algorithms/cpp/readNCharactersGivenRead4/readNCharactersGivenRead4.II.cpp)|Hard| +|157|[Read N Characters Given Read4](https://oj.leetcode.com/problems/read-n-characters-given-read4/) ♥ | [C++](./algorithms/cpp/readNCharactersGivenRead4/readNCharactersGivenRead4.cpp)|Easy| +|156|[Binary Tree Upside Down](https://oj.leetcode.com/problems/binary-tree-upside-down/) ♥ | [C++](./algorithms/cpp/binaryTreeUpsideDown/binaryTreeUpsideDown.cpp)|Medium| +|155|[Min Stack](https://oj.leetcode.com/problems/min-stack/)| [C++](./algorithms/cpp/minStack/minStack.cpp)|Easy| +|154|[Find Minimum in Rotated Sorted Array II](https://oj.leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/)| [C++](./algorithms/cpp/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArray.II.cpp)|Hard| +|153|[Find Minimum in Rotated Sorted Array](https://oj.leetcode.com/problems/find-minimum-in-rotated-sorted-array/)| [C++](./algorithms/cpp/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArray.cpp), [Java](./algorithms/java/src/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArray.java)|Medium| +|152|[Maximum Product Subarray](https://oj.leetcode.com/problems/maximum-product-subarray/)| [C++](./algorithms/cpp/maximumProductSubarray/maximumProductSubarray.cpp)|Medium| +|151|[Reverse Words in a String](https://oj.leetcode.com/problems/reverse-words-in-a-string/)| [C++](./algorithms/cpp/reverseWordsInAString/reverseWordsInAString.cpp)|Medium| +|150|[Evaluate Reverse Polish Notation](https://oj.leetcode.com/problems/evaluate-reverse-polish-notation/)| [C++](./algorithms/cpp/evaluateReversePolishNotation/evaluateReversePolishNotation.cpp)|Medium| +|149|[Max Points on a Line](https://oj.leetcode.com/problems/max-points-on-a-line/)| [C++](./algorithms/cpp/maxPointsOnALine/maxPointsOnALine.cpp)|Hard| +|148|[Sort List](https://oj.leetcode.com/problems/sort-list/)| [C++](./algorithms/cpp/sortList/sortList.cpp)|Medium| +|147|[Insertion Sort List](https://oj.leetcode.com/problems/insertion-sort-list/)| [C++](./algorithms/cpp/insertionSortList/insertionSortList.cpp)|Medium| +|146|[LRU Cache](https://oj.leetcode.com/problems/lru-cache/)| [C++](./algorithms/cpp/LRUCache/LRUCache.cpp)|Hard| +|145|[Binary Tree Postorder Traversal](https://oj.leetcode.com/problems/binary-tree-postorder-traversal/)| [C++](./algorithms/cpp/binaryTreePostorderTraversal/binaryTreePostorderTraversal.cpp)|Hard| +|144|[Binary Tree Preorder Traversal](https://oj.leetcode.com/problems/binary-tree-preorder-traversal/)| [C++](./algorithms/cpp/binaryTreePreorderTraversal/binaryTreePreorderTraversal.cpp), [Java](./algorithms/java/src/binaryTreePreorderTraversal/binaryTreePreorderTraversal.java)|Medium| +|143|[Reorder List](https://oj.leetcode.com/problems/reorder-list/)| [C++](./algorithms/cpp/reorderList/reorderList.cpp)|Medium| +|142|[Linked List Cycle II](https://oj.leetcode.com/problems/linked-list-cycle-ii/)| [C++](./algorithms/cpp/linkedListCycle/linkedListCycle.II.cpp)|Medium| +|141|[Linked List Cycle](https://oj.leetcode.com/problems/linked-list-cycle/)| [C++](./algorithms/cpp/linkedListCycle/linkedListCycle.cpp)|Medium| +|140|[Word Break II](https://oj.leetcode.com/problems/word-break-ii/)| [C++](./algorithms/cpp/wordBreak/wordBreak.II.cpp)|Hard| +|139|[Word Break](https://oj.leetcode.com/problems/word-break/)| [C++](./algorithms/cpp/wordBreak/wordBreak.cpp)|Medium| +|138|[Copy List with Random Pointer](https://oj.leetcode.com/problems/copy-list-with-random-pointer/)| [C++](./algorithms/cpp/copyListWithRandomPointer/copyListWithRandomPointer.cpp)|Hard| +|137|[Single Number II](https://oj.leetcode.com/problems/single-number-ii/)| [C++](./algorithms/cpp/singleNumber/singleNumber.II.cpp)|Medium| +|136|[Single Number](https://oj.leetcode.com/problems/single-number/)| [C++](./algorithms/cpp/singleNumber/singleNumber.cpp)|Medium| +|135|[Candy](https://oj.leetcode.com/problems/candy/)| [C++](./algorithms/cpp/candy/candy.cpp)|Hard| +|134|[Gas Station](https://oj.leetcode.com/problems/gas-station/)| [C++](./algorithms/cpp/gasStation/gasStation.cpp)|Medium| +|133|[Clone Graph](https://oj.leetcode.com/problems/clone-graph/)| [C++](./algorithms/cpp/cloneGraph/cloneGraph.cpp)|Medium| +|132|[Palindrome Partitioning II](https://oj.leetcode.com/problems/palindrome-partitioning-ii/)| [C++](./algorithms/cpp/palindromePartitioning/palindromePartitioning.II.cpp)|Hard| +|131|[Palindrome Partitioning](https://oj.leetcode.com/problems/palindrome-partitioning/)| [C++](./algorithms/cpp/palindromePartitioning/palindromePartitioning.cpp)|Medium| +|130|[Surrounded Regions](https://oj.leetcode.com/problems/surrounded-regions/)| [C++](./algorithms/cpp/surroundedRegions/surroundedRegions.cpp)|Medium| +|129|[Sum Root to Leaf Numbers](https://oj.leetcode.com/problems/sum-root-to-leaf-numbers/)| [C++](./algorithms/cpp/sumRootToLeafNumber/sumRootToLeafNumber.cpp)|Medium| +|128|[Longest Consecutive Sequence](https://oj.leetcode.com/problems/longest-consecutive-sequence/)| [C++](./algorithms/cpp/longestConsecutiveSequence/longestConsecutiveSequence.cpp)|Hard| +|127|[Word Ladder II](https://oj.leetcode.com/problems/word-ladder-ii/)| [C++](./algorithms/cpp/wordLadder/wordLadder.II.cpp)|Hard| +|126|[Word Ladder](https://oj.leetcode.com/problems/word-ladder/)| [C++](./algorithms/cpp/wordLadder/wordLadder.cpp)|Medium| +|125|[Valid Palindrome](https://oj.leetcode.com/problems/valid-palindrome/)| [C++](./algorithms/cpp/validPalindrome/validPalindrome.cpp)|Easy| +|124|[Binary Tree Maximum Path Sum](https://oj.leetcode.com/problems/binary-tree-maximum-path-sum/)| [C++](./algorithms/cpp/binaryTreeMaximumPathSum/binaryTreeMaximumPathSum.cpp), [Java](./algorithms/java/src/binaryTreeMaximumPathSum/binaryTreeMaximumPathSum.java)|Hard| +|123|[Best Time to Buy and Sell Stock III](https://oj.leetcode.com/problems/best-time-to-buy-and-sell-stock-iii/)| [C++](./algorithms/cpp/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.III.cpp)|Hard| +|122|[Best Time to Buy and Sell Stock II](https://oj.leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/)| [C++](./algorithms/cpp/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.II.cpp)|Medium| +|121|[Best Time to Buy and Sell Stock](https://oj.leetcode.com/problems/best-time-to-buy-and-sell-stock/)| [C++](./algorithms/cpp/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.cpp)|Medium| +|120|[Triangle](https://oj.leetcode.com/problems/triangle/)| [C++](./algorithms/cpp/triangle/triangle.cpp), [C++](./algorithms/java/src/dynamicProgramming/triangle/triangle.java)|Medium| +|119|[Pascal's Triangle II](https://oj.leetcode.com/problems/pascals-triangle-ii/)| [C++](./algorithms/cpp/pascalTriangle/pascalTriangle.II.cpp)|Easy| +|118|[Pascal's Triangle](https://oj.leetcode.com/problems/pascals-triangle/)| [C++](./algorithms/cpp/pascalTriangle/pascalTriangle.cpp)|Easy| +|117|[Populating Next Right Pointers in Each Node II](https://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/)| [C++](./algorithms/cpp/populatingNextRightPointersInEachNode/populatingNextRightPointersInEachNode.II.cpp)|Hard| +|116|[Populating Next Right Pointers in Each Node](https://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node/)| [C++](./algorithms/cpp/populatingNextRightPointersInEachNode/populatingNextRightPointersInEachNode.cpp)|Medium| +|115|[Distinct Subsequences](https://oj.leetcode.com/problems/distinct-subsequences/)| [C++](./algorithms/cpp/distinctSubsequences/distinctSubsequences.cpp)|Hard| +|114|[Flatten Binary Tree to Linked List](https://oj.leetcode.com/problems/flatten-binary-tree-to-linked-list/)| [C++](./algorithms/cpp/flattenBinaryTreeToLinkedList/flattenBinaryTreeToLinkedList.cpp)|Medium| +|113|[Path Sum II](https://oj.leetcode.com/problems/path-sum-ii/)| [C++](./algorithms/cpp/pathSum/pathSum.II.cpp)|Medium| +|112|[Path Sum](https://oj.leetcode.com/problems/path-sum/)| [C++](./algorithms/cpp/pathSum/pathSum.cpp)|Easy| +|111|[Minimum Depth of Binary Tree](https://oj.leetcode.com/problems/minimum-depth-of-binary-tree/)| [C++](./algorithms/cpp/minimumDepthOfBinaryTree/minimumDepthOfBinaryTree.cpp)|Easy| +|110|[Balanced Binary Tree](https://oj.leetcode.com/problems/balanced-binary-tree/)| [C++](./algorithms/cpp/balancedBinaryTree/balancedBinaryTree.cpp), [Java](./algorithms/java/src/balancedBinaryTree/balancedBinaryTree.java)|Easy| +|109|[Convert Sorted List to Binary Search Tree](https://oj.leetcode.com/problems/convert-sorted-list-to-binary-search-tree/)| [C++](./algorithms/cpp/convertSortedListToBinarySearchTree/convertSortedListToBinarySearchTree.cpp)|Medium| +|108|[Convert Sorted Array to Binary Search Tree](https://oj.leetcode.com/problems/convert-sorted-array-to-binary-search-tree/)| [C++](./algorithms/cpp/convertSortedArrayToBinarySearchTree/convertSortedArrayToBinarySearchTree.cpp)|Medium| +|107|[Binary Tree Level Order Traversal II](https://oj.leetcode.com/problems/binary-tree-level-order-traversal-ii/)| [C++](./algorithms/cpp/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversal.II.cpp)|Easy| +|106|[Construct Binary Tree from Inorder and Postorder Traversal](https://oj.leetcode.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/)| [C++](./algorithms/cpp/constructBinaryTreeFromInorderAndPostorderTraversal/constructBinaryTreeFromInorderAndPostorderTraversal.cpp)|Medium| +|105|[Construct Binary Tree from Preorder and Inorder Traversal](https://oj.leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/)| [C++](./algorithms/cpp/constructBinaryTreeFromPreorderAndInorderTraversal/constructBinaryTreeFromPreorderAndInorderTraversal.cpp)|Medium| +|104|[Maximum Depth of Binary Tree](https://oj.leetcode.com/problems/maximum-depth-of-binary-tree/)| [C++](./algorithms/cpp/maximumDepthOfBinaryTree/maximumDepthOfBinaryTree.cpp), [Java](./algorithms/java/src/maximumDepthOfBinaryTree/maximumDepthOfBinaryTree.java)|Easy| +|103|[Binary Tree Zigzag Level Order Traversal](https://oj.leetcode.com/problems/binary-tree-zigzag-level-order-traversal/)| [C++](./algorithms/cpp/binaryTreeZigzagLevelOrderTraversal/binaryTreeZigzagLevelOrderTraversal.cpp)|Medium| +|102|[Binary Tree Level Order Traversal](https://oj.leetcode.com/problems/binary-tree-level-order-traversal/)| [C++](./algorithms/cpp/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversal.cpp), [Java](./algorithms/java/src/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversal.java)|Easy| +|101|[Symmetric Tree](https://oj.leetcode.com/problems/symmetric-tree/)| [C++](./algorithms/cpp/symmetricTree/symmetricTree.cpp)|Easy| +|100|[Same Tree](https://oj.leetcode.com/problems/same-tree/)| [C++](./algorithms/cpp/sameTree/sameTree.cpp)|Easy| +|99|[Recover Binary Search Tree](https://oj.leetcode.com/problems/recover-binary-search-tree/)| [C++](./algorithms/cpp/recoverBinarySearchTree/recoverBinarySearchTree.cpp)|Hard| +|98|[Validate Binary Search Tree](https://oj.leetcode.com/problems/validate-binary-search-tree/)| [C++](./algorithms/cpp/validateBinarySearchTree/validateBinarySearchTree.cpp), [Java](./algorithms/java/src/validateBinarySearchTree/validateBinarySearchTree.java)|Medium| +|97|[Interleaving String](https://oj.leetcode.com/problems/interleaving-string/)| [C++](./algorithms/cpp/interleavingString/interleavingString.cpp)|Hard| +|96|[Unique Binary Search Trees II](https://oj.leetcode.com/problems/unique-binary-search-trees-ii/)| [C++](./algorithms/cpp/uniqueBinarySearchTrees/uniqueBinarySearchTrees.II.cpp)|Medium| +|95|[Unique Binary Search Trees](https://oj.leetcode.com/problems/unique-binary-search-trees/)| [C++](./algorithms/cpp/uniqueBinarySearchTrees/uniqueBinarySearchTrees.cpp)|Medium| +|94|[Binary Tree Inorder Traversal](https://oj.leetcode.com/problems/binary-tree-inorder-traversal/)| [C++](./algorithms/cpp/binaryTreeInorderTraversal/binaryTreeInorderTraversal.cpp)|Medium| +|93|[Restore IP Addresses](https://oj.leetcode.com/problems/restore-ip-addresses/)| [C++](./algorithms/cpp/restoreIPAddresses/restoreIPAddresses.cpp)|Medium| +|92|[Reverse Linked List II](https://oj.leetcode.com/problems/reverse-linked-list-ii/)| [C++](./algorithms/cpp/reverseLinkedList/reverseLinkedList.II.cpp)|Medium| +|91|[Subsets II](https://oj.leetcode.com/problems/subsets-ii/)| [C++](./algorithms/cpp/subsets/subsets.II.cpp), [Java](./algorithms/java/src/subsets/subsetsII.java)|Medium| +|90|[Decode Ways](https://oj.leetcode.com/problems/decode-ways/)| [C++](./algorithms/cpp/decodeWays/decodeWays.cpp)|Medium| +|89|[Gray Code](https://oj.leetcode.com/problems/gray-code/)| [C++](./algorithms/cpp/grayCode/grayCode.cpp)|Medium| +|88|[Merge Sorted Array](https://oj.leetcode.com/problems/merge-sorted-array/)| [C++](./algorithms/cpp/mergeTwoSortedArray/mergeTwoSortedArray.cpp)|Easy| +|87|[Scramble String](https://oj.leetcode.com/problems/scramble-string/)| [C++](./algorithms/cpp/scrambleString/scrambleString.cpp)|Hard| +|86|[Partition List](https://oj.leetcode.com/problems/partition-list/)| [C++](./algorithms/cpp/partitionList/partitionList.cpp)|Medium| +|85|[Maximal Rectangle](https://oj.leetcode.com/problems/maximal-rectangle/)| [C++](./algorithms/cpp/maximalRectangle/maximalRectangle.cpp)|Hard| +|84|[Largest Rectangle in Histogram](https://oj.leetcode.com/problems/largest-rectangle-in-histogram/)| [C++](./algorithms/cpp/largestRectangleInHistogram/largestRectangleInHistogram.cpp)|Hard| +|83|[Remove Duplicates from Sorted List II](https://oj.leetcode.com/problems/remove-duplicates-from-sorted-list-ii/)| [C++](./algorithms/cpp/removeDuplicatesFromSortedList/removeDuplicatesFromSortedList.II.cpp)|Medium| +|82|[Remove Duplicates from Sorted List](https://oj.leetcode.com/problems/remove-duplicates-from-sorted-list/)| [C++](./algorithms/cpp/removeDuplicatesFromSortedList/removeDuplicatesFromSortedList.cpp)|Easy| +|81|[Search in Rotated Sorted Array II](https://oj.leetcode.com/problems/search-in-rotated-sorted-array-ii/)| [C++](./algorithms/cpp/searchInRotatedSortedArray/searchInRotatedSortedArray.II.cpp)|Medium| +|80|[Remove Duplicates from Sorted Array II](https://oj.leetcode.com/problems/remove-duplicates-from-sorted-array-ii/)| [C++](./algorithms/cpp/removeDuplicatesFromSortedArray/removeDuplicatesFromSortedArray.II.cpp)|Medium| +|79|[Word Search](https://oj.leetcode.com/problems/word-search/)| [C++](./algorithms/cpp/wordSearch/wordSearch.cpp)|Medium| +|78|[Subsets](https://oj.leetcode.com/problems/subsets/)| [C++](./algorithms/cpp/subsets/subsets.cpp), [Java](./algorithms/java/src/subsets/subsets.java)|Medium| +|77|[Combinations](https://oj.leetcode.com/problems/combinations/)| [C++](./algorithms/cpp/combinations/combinations.cpp)|Medium| +|76|[Minimum Window Substring](https://oj.leetcode.com/problems/minimum-window-substring/)| [C++](./algorithms/cpp/minimumWindowSubstring/minimumWindowSubstring.cpp)|Hard| +|75|[Sort Colors](https://oj.leetcode.com/problems/sort-colors/)| [C++](./algorithms/cpp/sortColors/sortColors.cpp)|Medium| +|74|[Search a 2D Matrix](https://oj.leetcode.com/problems/search-a-2d-matrix/)| [C++](./algorithms/cpp/search2DMatrix/search2DMatrix.cpp), [Java](./algorithms/java/src/search2DMatrix/search2DMatrix.java)|Medium| +|73|[Set Matrix Zeroes](https://oj.leetcode.com/problems/set-matrix-zeroes/)| [C++](./algorithms/cpp/setMatrixZeroes/setMatrixZeroes.cpp)|Medium| +|72|[Edit Distance](https://oj.leetcode.com/problems/edit-distance/)| [C++](./algorithms/cpp/editDistance/editDistance.cpp)|Hard| +|71|[Simplify Path](https://oj.leetcode.com/problems/simplify-path/)| [C++](./algorithms/cpp/simplifyPath/simplifyPath.cpp)|Medium| +|70|[Climbing Stairs](https://oj.leetcode.com/problems/climbing-stairs/)| [C++](./algorithms/cpp/climbStairs/climbStairs.cpp), [Java](./algorithms/java/src/dynamicProgramming/climbStairs/climbStairs.java)|Easy| +|69|[Sqrt(x)](https://oj.leetcode.com/problems/sqrtx/)| [C++](./algorithms/cpp/sqrt/sqrt.cpp)|Medium| +|68|[Text Justification](https://oj.leetcode.com/problems/text-justification/)| [C++](./algorithms/cpp/textJustification/textJustification.cpp)|Hard| +|67|[Plus One](https://oj.leetcode.com/problems/plus-one/)| [C++](./algorithms/cpp/plusOne/plusOne.cpp)|Easy| +|66|[Valid Number](https://oj.leetcode.com/problems/valid-number/)| [C++](./algorithms/cpp/validNumber/validNumber.cpp)|Easy| +|65|[Add Binary](https://oj.leetcode.com/problems/add-binary/)| [C++](./algorithms/cpp/addBinary/addBinary.cpp)|Easy| +|64|[Merge Two Sorted Lists](https://oj.leetcode.com/problems/merge-two-sorted-lists/)| [C++](./algorithms/cpp/mergeTwoSortedList/mergeTwoSortedList.cpp)|Easy| +|63|[Minimum Path Sum](https://oj.leetcode.com/problems/minimum-path-sum/)| [C++](./algorithms/cpp/minimumPathSum/minimumPathSum.cpp), [Java](./algorithms/java/src/dynamicProgramming/minimumPathSum/minimumPathSum.java)|Medium| +|62|[Unique Paths II](https://oj.leetcode.com/problems/unique-paths-ii/)| [C++](./algorithms/cpp/uniquePaths/uniquePaths.II.cpp), [Java](./algorithms/java/src/dynamicProgramming/uniquePaths/uniquePathsII.java)|Medium| +|61|[Unique Paths](https://oj.leetcode.com/problems/unique-paths/)| [C++](./algorithms/cpp/uniquePaths/uniquePaths.cpp), [Java](./algorithms/java/src/dynamicProgramming/uniquePaths/uniquePaths.java)|Medium| +|60|[Rotate List](https://oj.leetcode.com/problems/rotate-list/)| [C++](./algorithms/cpp/rotateList/rotateList.cpp)|Medium| +|59|[Permutation Sequence](https://oj.leetcode.com/problems/permutation-sequence/)| [C++](./algorithms/cpp/permutationSequence/permutationSequence.cpp)|Medium| +|58|[Spiral Matrix II](https://oj.leetcode.com/problems/spiral-matrix-ii/)| [C++](./algorithms/cpp/spiralMatrix/spiralMatrix.II.cpp)|Medium| +|57|[Length of Last Word](https://oj.leetcode.com/problems/length-of-last-word/)| [C++](./algorithms/cpp/lengthOfLastWord/lengthOfLastWord.cpp)|Easy| +|56|[Insert Interval](https://oj.leetcode.com/problems/insert-interval/)| [C++](./algorithms/cpp/insertInterval/insertInterval.cpp)|Hard| +|55|[Merge Intervals](https://oj.leetcode.com/problems/merge-intervals/)| [C++](./algorithms/cpp/mergeIntervals/mergeIntervals.cpp)|Hard| +|54|[Jump Game](https://oj.leetcode.com/problems/jump-game/)| [C++](./algorithms/cpp/jumpGame/jumpGame.cpp)|Medium| +|53|[Spiral Matrix](https://oj.leetcode.com/problems/spiral-matrix/)| [C++](./algorithms/cpp/spiralMatrix/spiralMatrix.cpp)|Medium| +|52|[Maximum Subarray](https://oj.leetcode.com/problems/maximum-subarray/)| [C++](./algorithms/cpp/maximumSubArray/maximumSubArray.cpp)|Medium| +|51|[N-Queens II](https://oj.leetcode.com/problems/n-queens-ii/)| [C++](./algorithms/cpp/nQueens/nQueuens.II.cpp)|Hard| +|50|[N-Queens](https://oj.leetcode.com/problems/n-queens/)| [C++](./algorithms/cpp/nQueens/nQueuens.cpp)|Hard| +|49|["Pow(x, n)"](https://oj.leetcode.com/problems/powx-n/)| [C++](./algorithms/cpp/pow/pow.cpp)|Medium| +|48|[Group Anagrams](https://oj.leetcode.com/problems/anagrams/)| [C++](./algorithms/cpp/anagrams/GroupAnagrams.cpp)|Medium| +|47|[Rotate Image](https://oj.leetcode.com/problems/rotate-image/)| [C++](./algorithms/cpp/rotateImage/rotateImage.cpp)|Medium| +|46|[Permutations II](https://oj.leetcode.com/problems/permutations-ii/)| [C++](./algorithms/cpp/permutations/permutations.II.cpp)|Hard| +|45|[Permutations](https://oj.leetcode.com/problems/permutations/)| [C++](./algorithms/cpp/permutations/permutations.cpp)|Medium| +|44|[Jump Game II](https://oj.leetcode.com/problems/jump-game-ii/)| [C++](./algorithms/cpp/jumpGame/jumpGame.II.cpp)|Hard| +|43|[Wildcard Matching](https://oj.leetcode.com/problems/wildcard-matching/)| [C++](./algorithms/cpp/wildcardMatching/wildcardMatching.cpp)|Hard| +|42|[Multiply Strings](https://oj.leetcode.com/problems/multiply-strings/)| [C++](./algorithms/cpp/multiplyStrings/multiplyStrings.cpp)|Medium| +|41|[Trapping Rain Water](https://oj.leetcode.com/problems/trapping-rain-water/)| [C++](./algorithms/cpp/trappingRainWater/trappingRainWater.cpp)|Hard| +|40|[First Missing Positive](https://oj.leetcode.com/problems/first-missing-positive/)| [C++](./algorithms/cpp/firstMissingPositive/firstMissingPositive.cpp)|Hard| +|39|[Combination Sum II](https://oj.leetcode.com/problems/combination-sum-ii/)| [C++](./algorithms/cpp/combinationSum/combinationSum.II.cpp)|Medium| +|38|[Combination Sum](https://oj.leetcode.com/problems/combination-sum/)| [C++](./algorithms/cpp/combinationSum/combinationSum.cpp)|Medium| +|37|[Count and Say](https://oj.leetcode.com/problems/count-and-say/)| [C++](./algorithms/cpp/countAndSay/countAndSay.cpp)|Easy| +|36|[Sudoku Solver](https://oj.leetcode.com/problems/sudoku-solver/)| [C++](./algorithms/cpp/sudokuSolver/sudokuSolver.cpp)|Hard| +|35|[Valid Sudoku](https://oj.leetcode.com/problems/valid-sudoku/)| [C++](./algorithms/cpp/validSudoku/validSudoku.cpp)|Easy| +|34|[Search Insert Position](https://oj.leetcode.com/problems/search-insert-position/)| [C++](./algorithms/cpp/searchInsertPosition/searchInsertPosition.cpp), [Java](./algorithms/java/src/searchInsertPosition/searchInsertPosition.java)|Medium| +|33|[Search for a Range](https://oj.leetcode.com/problems/search-for-a-range/)| [C++](./algorithms/cpp/searchForRange/searchForRange.cpp), [Java](./algorithms/java/src/searchForRange/searchForRange.java)|Medium| +|32|[Search in Rotated Sorted Array](https://oj.leetcode.com/problems/search-in-rotated-sorted-array/)| [C++](./algorithms/cpp/searchInRotatedSortedArray/searchInRotatedSortedArray.cpp), [Java](./algorithms/java/src/searchInRotatedSortedArray/searchInRotatedSortedArray.java)|Hard| +|31|[Longest Valid Parentheses](https://oj.leetcode.com/problems/longest-valid-parentheses/)| [C++](./algorithms/cpp/longestValidParentheses/longestValidParentheses.cpp)|Hard| +|30|[Next Permutation](https://oj.leetcode.com/problems/next-permutation/)| [C++](./algorithms/cpp/nextPermutation/nextPermutation.cpp)|Medium| +|29|[Substring with Concatenation of All Words](https://oj.leetcode.com/problems/substring-with-concatenation-of-all-words/)| [C++](./algorithms/cpp/substringWithConcatenationOfAllWords/substringWithConcatenationOfAllWords.cpp)|Hard| +|28|[Divide Two Integers](https://oj.leetcode.com/problems/divide-two-integers/)| [C++](./algorithms/cpp/divideTwoInt/divideTwoInt.cpp)|Medium| +|27|[Implement strStr()](https://oj.leetcode.com/problems/implement-strstr/)| [C++](./algorithms/cpp/strStr/strStr.cpp), [Java](./algorithms/java/src/strStr/strStr.java)|Easy| +|26|[Remove Element](https://oj.leetcode.com/problems/remove-element/)| [C++](./algorithms/cpp/removeElement/removeElement.cpp)|Easy| +|25|[Remove Duplicates from Sorted Array](https://oj.leetcode.com/problems/remove-duplicates-from-sorted-array/)| [C++](./algorithms/cpp/removeDuplicatesFromSortedArray/removeDuplicatesFromSortedArray.cpp)|Easy| +|24|[Reverse Nodes in k-Group](https://oj.leetcode.com/problems/reverse-nodes-in-k-group/)| [C++](./algorithms/cpp/reverseNodesInKGroup/reverseNodesInKGroup.cpp)|Hard| +|23|[Swap Nodes in Pairs](https://oj.leetcode.com/problems/swap-nodes-in-pairs/)| [C++](./algorithms/cpp/swapNodesInPairs/swapNodesInPairs.cpp)|Medium| +|22|[Merge k Sorted Lists](https://oj.leetcode.com/problems/merge-k-sorted-lists/)| [C++](./algorithms/cpp/mergeKSortedLists/mergeKSortedLists.cpp)|Hard| +|21|[Generate Parentheses](https://oj.leetcode.com/problems/generate-parentheses/)| [C++](./algorithms/cpp/generateParentheses/generateParentheses.cpp)|Medium| +|20|[Valid Parentheses](https://oj.leetcode.com/problems/valid-parentheses/)| [C++](./algorithms/cpp/validParentheses/validParentheses.cpp)|Easy| +|19|[Remove Nth Node From End of List](https://oj.leetcode.com/problems/remove-nth-node-from-end-of-list/)| [C++](./algorithms/cpp/removeNthNodeFromEndOfList/removeNthNodeFromEndOfList.cpp)|Easy| +|18|[Letter Combinations of a Phone Number](https://oj.leetcode.com/problems/letter-combinations-of-a-phone-number/)| [C++](./algorithms/cpp/letterCombinationsOfAPhoneNumber/letterCombinationsOfAPhoneNumber.cpp)|Medium| +|17|[4Sum](https://oj.leetcode.com/problems/4sum/)| [C++](./algorithms/cpp/4Sum/4Sum.cpp)|Medium| +|16|[3Sum Closest](https://oj.leetcode.com/problems/3sum-closest/)| [C++](./algorithms/cpp/3SumClosest/3SumClosest.cpp)|Medium| +|15|[3Sum](https://oj.leetcode.com/problems/3sum/)| [C++](./algorithms/cpp/3Sum/3Sum.cpp)|Medium| +|14|[Longest Common Prefix](https://oj.leetcode.com/problems/longest-common-prefix/)| [C++](./algorithms/cpp/longestCommonPrefix/longestCommonPrefix.cpp)|Easy| +|13|[Roman to Integer](https://oj.leetcode.com/problems/roman-to-integer/)| [C++](./algorithms/cpp/romanToInteger/romanToInteger.cpp)|Easy| +|12|[Integer to Roman](https://oj.leetcode.com/problems/integer-to-roman/)| [C++](./algorithms/cpp/integerToRoman/integerToRoman.cpp)|Medium| +|11|[Container With Most Water](https://oj.leetcode.com/problems/container-with-most-water/)| [C++](./algorithms/cpp/containerWithMostWater/containerWithMostWater.cpp)|Medium| +|10|[Regular Expression Matching](https://oj.leetcode.com/problems/regular-expression-matching/)| [C++](./algorithms/cpp/regularExpressionMatching/regularExpressionMatching.cpp)|Hard| +|9|[Palindrome Number](https://oj.leetcode.com/problems/palindrome-number/)| [C++](./algorithms/cpp/palindromeNumber/palindromeNumber.cpp)|Easy| +|8|[String to Integer (atoi)](https://oj.leetcode.com/problems/string-to-integer-atoi/)| [C++](./algorithms/cpp/stringToIntegerAtoi/stringToIntegerAtoi.cpp)|Easy| +|7|[Reverse Integer](https://oj.leetcode.com/problems/reverse-integer/)| [C++](./algorithms/cpp/reverseInteger/reverseInteger.cpp)|Easy| +|6|[ZigZag Conversion](https://oj.leetcode.com/problems/zigzag-conversion/)| [C++](./algorithms/cpp/zigZagConversion/zigZagConversion.cpp)|Easy| +|5|[Longest Palindromic Substring](https://oj.leetcode.com/problems/longest-palindromic-substring/)| [C++](./algorithms/cpp/longestPalindromicSubstring/longestPalindromicSubstring.cpp)|Medium| +|4|[Add Two Numbers](https://oj.leetcode.com/problems/add-two-numbers/)| [C++](./algorithms/cpp/addTwoNumbers/addTwoNumbers.cpp)|Medium| +|3|[Longest Substring Without Repeating Characters](https://oj.leetcode.com/problems/longest-substring-without-repeating-characters/)| [C++](./algorithms/cpp/longestSubstringWithoutRepeatingCharacters/longestSubstringWithoutRepeatingCharacters.cpp)|Medium| +|2|[Median of Two Sorted Arrays](https://oj.leetcode.com/problems/median-of-two-sorted-arrays/)| [C++](./algorithms/cpp/medianOfTwoSortedArrays/medianOfTwoSortedArrays.cpp)|Hard| +|1|[Two Sum](https://oj.leetcode.com/problems/two-sum/)| [C++](./algorithms/cpp/twoSum/twoSum.cpp)|Medium| @@ -253,5 +253,5 @@ LeetCode ###LintCode | # | Title | Solution | Difficulty | |---| ----- | -------- | ---------- | -|1|[Search in a big sorted array](http://www.lintcode.com/en/problem/search-in-a-big-sorted-array/)|[Java](./algorithms-java/src/searchInABigSortedArray/searchInABigSortedArray.java)|Medium| -|2|[Search Range in Binary Search Tree](http://www.lintcode.com/en/problem/search-range-in-binary-search-tree/) | [Java](./algorithms-java/src/searchRangeInBinarySearchTree/searchRangeInBinarySearchTree.java)|Medium| +|1|[Search in a big sorted array](http://www.lintcode.com/en/problem/search-in-a-big-sorted-array/)|[Java](./algorithms/java/src/searchInABigSortedArray/searchInABigSortedArray.java)|Medium| +|2|[Search Range in Binary Search Tree](http://www.lintcode.com/en/problem/search-range-in-binary-search-tree/) | [Java](./algorithms/java/src/searchRangeInBinarySearchTree/searchRangeInBinarySearchTree.java)|Medium| diff --git a/algorithms/3Sum/3Sum.cpp b/algorithms/cpp/3Sum/3Sum.cpp similarity index 100% rename from algorithms/3Sum/3Sum.cpp rename to algorithms/cpp/3Sum/3Sum.cpp diff --git a/algorithms/3SumClosest/3SumClosest.cpp b/algorithms/cpp/3SumClosest/3SumClosest.cpp similarity index 100% rename from algorithms/3SumClosest/3SumClosest.cpp rename to algorithms/cpp/3SumClosest/3SumClosest.cpp diff --git a/algorithms/4Sum/4Sum.cpp b/algorithms/cpp/4Sum/4Sum.cpp similarity index 100% rename from algorithms/4Sum/4Sum.cpp rename to algorithms/cpp/4Sum/4Sum.cpp diff --git a/algorithms/LRUCache/LRUCache.cpp b/algorithms/cpp/LRUCache/LRUCache.cpp similarity index 100% rename from algorithms/LRUCache/LRUCache.cpp rename to algorithms/cpp/LRUCache/LRUCache.cpp diff --git a/algorithms/addAndSearchWord/AddAndSearchWord.cpp b/algorithms/cpp/addAndSearchWord/AddAndSearchWord.cpp similarity index 100% rename from algorithms/addAndSearchWord/AddAndSearchWord.cpp rename to algorithms/cpp/addAndSearchWord/AddAndSearchWord.cpp diff --git a/algorithms/addBinary/addBinary.cpp b/algorithms/cpp/addBinary/addBinary.cpp similarity index 100% rename from algorithms/addBinary/addBinary.cpp rename to algorithms/cpp/addBinary/addBinary.cpp diff --git a/algorithms/addTwoNumbers/addTwoNumbers.cpp b/algorithms/cpp/addTwoNumbers/addTwoNumbers.cpp similarity index 100% rename from algorithms/addTwoNumbers/addTwoNumbers.cpp rename to algorithms/cpp/addTwoNumbers/addTwoNumbers.cpp diff --git a/algorithms/anagrams/GroupAnagrams.cpp b/algorithms/cpp/anagrams/GroupAnagrams.cpp similarity index 100% rename from algorithms/anagrams/GroupAnagrams.cpp rename to algorithms/cpp/anagrams/GroupAnagrams.cpp diff --git a/algorithms/anagrams/ValidAnagram.cpp b/algorithms/cpp/anagrams/ValidAnagram.cpp similarity index 100% rename from algorithms/anagrams/ValidAnagram.cpp rename to algorithms/cpp/anagrams/ValidAnagram.cpp diff --git a/algorithms/balancedBinaryTree/balancedBinaryTree.cpp b/algorithms/cpp/balancedBinaryTree/balancedBinaryTree.cpp similarity index 100% rename from algorithms/balancedBinaryTree/balancedBinaryTree.cpp rename to algorithms/cpp/balancedBinaryTree/balancedBinaryTree.cpp diff --git a/algorithms/basicCalculator/BasicCalculator.II.cpp b/algorithms/cpp/basicCalculator/BasicCalculator.II.cpp similarity index 100% rename from algorithms/basicCalculator/BasicCalculator.II.cpp rename to algorithms/cpp/basicCalculator/BasicCalculator.II.cpp diff --git a/algorithms/basicCalculator/BasicCalculator.cpp b/algorithms/cpp/basicCalculator/BasicCalculator.cpp similarity index 100% rename from algorithms/basicCalculator/BasicCalculator.cpp rename to algorithms/cpp/basicCalculator/BasicCalculator.cpp diff --git a/algorithms/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.II.cpp b/algorithms/cpp/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.II.cpp similarity index 100% rename from algorithms/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.II.cpp rename to algorithms/cpp/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.II.cpp diff --git a/algorithms/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.III.cpp b/algorithms/cpp/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.III.cpp similarity index 100% rename from algorithms/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.III.cpp rename to algorithms/cpp/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.III.cpp diff --git a/algorithms/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.IV.cpp b/algorithms/cpp/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.IV.cpp similarity index 100% rename from algorithms/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.IV.cpp rename to algorithms/cpp/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.IV.cpp diff --git a/algorithms/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.cpp b/algorithms/cpp/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.cpp similarity index 100% rename from algorithms/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.cpp rename to algorithms/cpp/bestTimeToBuyAndSellStock/bestTimeToBuyAndSellStock.cpp diff --git a/algorithms/binarySearchTreeIterator/binarySearchTreeIterator.cpp b/algorithms/cpp/binarySearchTreeIterator/binarySearchTreeIterator.cpp similarity index 100% rename from algorithms/binarySearchTreeIterator/binarySearchTreeIterator.cpp rename to algorithms/cpp/binarySearchTreeIterator/binarySearchTreeIterator.cpp diff --git a/algorithms/binaryTreeInorderTraversal/binaryTreeInorderTraversal.cpp b/algorithms/cpp/binaryTreeInorderTraversal/binaryTreeInorderTraversal.cpp similarity index 100% rename from algorithms/binaryTreeInorderTraversal/binaryTreeInorderTraversal.cpp rename to algorithms/cpp/binaryTreeInorderTraversal/binaryTreeInorderTraversal.cpp diff --git a/algorithms/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversal.II.cpp b/algorithms/cpp/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversal.II.cpp similarity index 100% rename from algorithms/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversal.II.cpp rename to algorithms/cpp/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversal.II.cpp diff --git a/algorithms/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversal.cpp b/algorithms/cpp/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversal.cpp similarity index 100% rename from algorithms/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversal.cpp rename to algorithms/cpp/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversal.cpp diff --git a/algorithms/binaryTreeMaximumPathSum/binaryTreeMaximumPathSum.cpp b/algorithms/cpp/binaryTreeMaximumPathSum/binaryTreeMaximumPathSum.cpp similarity index 100% rename from algorithms/binaryTreeMaximumPathSum/binaryTreeMaximumPathSum.cpp rename to algorithms/cpp/binaryTreeMaximumPathSum/binaryTreeMaximumPathSum.cpp diff --git a/algorithms/binaryTreePostorderTraversal/binaryTreePostorderTraversal.cpp b/algorithms/cpp/binaryTreePostorderTraversal/binaryTreePostorderTraversal.cpp similarity index 100% rename from algorithms/binaryTreePostorderTraversal/binaryTreePostorderTraversal.cpp rename to algorithms/cpp/binaryTreePostorderTraversal/binaryTreePostorderTraversal.cpp diff --git a/algorithms/binaryTreePreorderTraversal/binaryTreePreorderTraversal.cpp b/algorithms/cpp/binaryTreePreorderTraversal/binaryTreePreorderTraversal.cpp similarity index 100% rename from algorithms/binaryTreePreorderTraversal/binaryTreePreorderTraversal.cpp rename to algorithms/cpp/binaryTreePreorderTraversal/binaryTreePreorderTraversal.cpp diff --git a/algorithms/binaryTreeRightSideView/binaryTreeRightSideView.cpp b/algorithms/cpp/binaryTreeRightSideView/binaryTreeRightSideView.cpp similarity index 100% rename from algorithms/binaryTreeRightSideView/binaryTreeRightSideView.cpp rename to algorithms/cpp/binaryTreeRightSideView/binaryTreeRightSideView.cpp diff --git a/algorithms/binaryTreeUpsideDown/binaryTreeUpsideDown.cpp b/algorithms/cpp/binaryTreeUpsideDown/binaryTreeUpsideDown.cpp similarity index 100% rename from algorithms/binaryTreeUpsideDown/binaryTreeUpsideDown.cpp rename to algorithms/cpp/binaryTreeUpsideDown/binaryTreeUpsideDown.cpp diff --git a/algorithms/binaryTreeZigzagLevelOrderTraversal/binaryTreeZigzagLevelOrderTraversal.cpp b/algorithms/cpp/binaryTreeZigzagLevelOrderTraversal/binaryTreeZigzagLevelOrderTraversal.cpp similarity index 100% rename from algorithms/binaryTreeZigzagLevelOrderTraversal/binaryTreeZigzagLevelOrderTraversal.cpp rename to algorithms/cpp/binaryTreeZigzagLevelOrderTraversal/binaryTreeZigzagLevelOrderTraversal.cpp diff --git a/algorithms/bitwiseANDOfNumbersRange/BitwiseAndOfNumbersRange.cpp b/algorithms/cpp/bitwiseANDOfNumbersRange/BitwiseAndOfNumbersRange.cpp similarity index 100% rename from algorithms/bitwiseANDOfNumbersRange/BitwiseAndOfNumbersRange.cpp rename to algorithms/cpp/bitwiseANDOfNumbersRange/BitwiseAndOfNumbersRange.cpp diff --git a/algorithms/candy/candy.cpp b/algorithms/cpp/candy/candy.cpp similarity index 100% rename from algorithms/candy/candy.cpp rename to algorithms/cpp/candy/candy.cpp diff --git a/algorithms/climbStairs/climbStairs.cpp b/algorithms/cpp/climbStairs/climbStairs.cpp similarity index 100% rename from algorithms/climbStairs/climbStairs.cpp rename to algorithms/cpp/climbStairs/climbStairs.cpp diff --git a/algorithms/cloneGraph/cloneGraph.cpp b/algorithms/cpp/cloneGraph/cloneGraph.cpp similarity index 100% rename from algorithms/cloneGraph/cloneGraph.cpp rename to algorithms/cpp/cloneGraph/cloneGraph.cpp diff --git a/algorithms/combinationSum/combinationSum.II.cpp b/algorithms/cpp/combinationSum/combinationSum.II.cpp similarity index 100% rename from algorithms/combinationSum/combinationSum.II.cpp rename to algorithms/cpp/combinationSum/combinationSum.II.cpp diff --git a/algorithms/combinationSum/combinationSum.III.cpp b/algorithms/cpp/combinationSum/combinationSum.III.cpp similarity index 100% rename from algorithms/combinationSum/combinationSum.III.cpp rename to algorithms/cpp/combinationSum/combinationSum.III.cpp diff --git a/algorithms/combinationSum/combinationSum.cpp b/algorithms/cpp/combinationSum/combinationSum.cpp similarity index 100% rename from algorithms/combinationSum/combinationSum.cpp rename to algorithms/cpp/combinationSum/combinationSum.cpp diff --git a/algorithms/combinations/combinations.cpp b/algorithms/cpp/combinations/combinations.cpp similarity index 100% rename from algorithms/combinations/combinations.cpp rename to algorithms/cpp/combinations/combinations.cpp diff --git a/algorithms/compareVersionNumbers/compareVersionNumbers.cpp b/algorithms/cpp/compareVersionNumbers/compareVersionNumbers.cpp similarity index 100% rename from algorithms/compareVersionNumbers/compareVersionNumbers.cpp rename to algorithms/cpp/compareVersionNumbers/compareVersionNumbers.cpp diff --git a/algorithms/constructBinaryTreeFromInorderAndPostorderTraversal/constructBinaryTreeFromInorderAndPostorderTraversal.cpp b/algorithms/cpp/constructBinaryTreeFromInorderAndPostorderTraversal/constructBinaryTreeFromInorderAndPostorderTraversal.cpp similarity index 100% rename from algorithms/constructBinaryTreeFromInorderAndPostorderTraversal/constructBinaryTreeFromInorderAndPostorderTraversal.cpp rename to algorithms/cpp/constructBinaryTreeFromInorderAndPostorderTraversal/constructBinaryTreeFromInorderAndPostorderTraversal.cpp diff --git a/algorithms/constructBinaryTreeFromPreorderAndInorderTraversal/constructBinaryTreeFromPreorderAndInorderTraversal.cpp b/algorithms/cpp/constructBinaryTreeFromPreorderAndInorderTraversal/constructBinaryTreeFromPreorderAndInorderTraversal.cpp similarity index 100% rename from algorithms/constructBinaryTreeFromPreorderAndInorderTraversal/constructBinaryTreeFromPreorderAndInorderTraversal.cpp rename to algorithms/cpp/constructBinaryTreeFromPreorderAndInorderTraversal/constructBinaryTreeFromPreorderAndInorderTraversal.cpp diff --git a/algorithms/containerWithMostWater/containerWithMostWater.cpp b/algorithms/cpp/containerWithMostWater/containerWithMostWater.cpp similarity index 100% rename from algorithms/containerWithMostWater/containerWithMostWater.cpp rename to algorithms/cpp/containerWithMostWater/containerWithMostWater.cpp diff --git a/algorithms/containsDuplicate/ContainsDuplicate.II.cpp b/algorithms/cpp/containsDuplicate/ContainsDuplicate.II.cpp similarity index 100% rename from algorithms/containsDuplicate/ContainsDuplicate.II.cpp rename to algorithms/cpp/containsDuplicate/ContainsDuplicate.II.cpp diff --git a/algorithms/containsDuplicate/ContainsDuplicate.III.cpp b/algorithms/cpp/containsDuplicate/ContainsDuplicate.III.cpp similarity index 100% rename from algorithms/containsDuplicate/ContainsDuplicate.III.cpp rename to algorithms/cpp/containsDuplicate/ContainsDuplicate.III.cpp diff --git a/algorithms/containsDuplicate/ContainsDuplicate.cpp b/algorithms/cpp/containsDuplicate/ContainsDuplicate.cpp similarity index 100% rename from algorithms/containsDuplicate/ContainsDuplicate.cpp rename to algorithms/cpp/containsDuplicate/ContainsDuplicate.cpp diff --git a/algorithms/convertSortedArrayToBinarySearchTree/convertSortedArrayToBinarySearchTree.cpp b/algorithms/cpp/convertSortedArrayToBinarySearchTree/convertSortedArrayToBinarySearchTree.cpp similarity index 100% rename from algorithms/convertSortedArrayToBinarySearchTree/convertSortedArrayToBinarySearchTree.cpp rename to algorithms/cpp/convertSortedArrayToBinarySearchTree/convertSortedArrayToBinarySearchTree.cpp diff --git a/algorithms/convertSortedListToBinarySearchTree/convertSortedListToBinarySearchTree.cpp b/algorithms/cpp/convertSortedListToBinarySearchTree/convertSortedListToBinarySearchTree.cpp similarity index 100% rename from algorithms/convertSortedListToBinarySearchTree/convertSortedListToBinarySearchTree.cpp rename to algorithms/cpp/convertSortedListToBinarySearchTree/convertSortedListToBinarySearchTree.cpp diff --git a/algorithms/copyListWithRandomPointer/copyListWithRandomPointer.cpp b/algorithms/cpp/copyListWithRandomPointer/copyListWithRandomPointer.cpp similarity index 100% rename from algorithms/copyListWithRandomPointer/copyListWithRandomPointer.cpp rename to algorithms/cpp/copyListWithRandomPointer/copyListWithRandomPointer.cpp diff --git a/algorithms/countAndSay/countAndSay.cpp b/algorithms/cpp/countAndSay/countAndSay.cpp similarity index 100% rename from algorithms/countAndSay/countAndSay.cpp rename to algorithms/cpp/countAndSay/countAndSay.cpp diff --git a/algorithms/countCompleteTreeNodes/CountCompleteTreeNodes.cpp b/algorithms/cpp/countCompleteTreeNodes/CountCompleteTreeNodes.cpp similarity index 100% rename from algorithms/countCompleteTreeNodes/CountCompleteTreeNodes.cpp rename to algorithms/cpp/countCompleteTreeNodes/CountCompleteTreeNodes.cpp diff --git a/algorithms/countPrimes/CountPrimes.cpp b/algorithms/cpp/countPrimes/CountPrimes.cpp similarity index 100% rename from algorithms/countPrimes/CountPrimes.cpp rename to algorithms/cpp/countPrimes/CountPrimes.cpp diff --git a/algorithms/courseSchedule/CourseSchedule.II.cpp b/algorithms/cpp/courseSchedule/CourseSchedule.II.cpp similarity index 100% rename from algorithms/courseSchedule/CourseSchedule.II.cpp rename to algorithms/cpp/courseSchedule/CourseSchedule.II.cpp diff --git a/algorithms/courseSchedule/CourseSchedule.cpp b/algorithms/cpp/courseSchedule/CourseSchedule.cpp similarity index 100% rename from algorithms/courseSchedule/CourseSchedule.cpp rename to algorithms/cpp/courseSchedule/CourseSchedule.cpp diff --git a/algorithms/decodeWays/decodeWays.cpp b/algorithms/cpp/decodeWays/decodeWays.cpp similarity index 100% rename from algorithms/decodeWays/decodeWays.cpp rename to algorithms/cpp/decodeWays/decodeWays.cpp diff --git a/algorithms/deleteNodeInALinkedList/DeleteNodeInALinkedList.cpp b/algorithms/cpp/deleteNodeInALinkedList/DeleteNodeInALinkedList.cpp similarity index 100% rename from algorithms/deleteNodeInALinkedList/DeleteNodeInALinkedList.cpp rename to algorithms/cpp/deleteNodeInALinkedList/DeleteNodeInALinkedList.cpp diff --git a/algorithms/differentWaysToAddParentheses/DifferentWaysToAddParentheses.cpp b/algorithms/cpp/differentWaysToAddParentheses/DifferentWaysToAddParentheses.cpp similarity index 100% rename from algorithms/differentWaysToAddParentheses/DifferentWaysToAddParentheses.cpp rename to algorithms/cpp/differentWaysToAddParentheses/DifferentWaysToAddParentheses.cpp diff --git a/algorithms/distinctSubsequences/distinctSubsequences.cpp b/algorithms/cpp/distinctSubsequences/distinctSubsequences.cpp similarity index 100% rename from algorithms/distinctSubsequences/distinctSubsequences.cpp rename to algorithms/cpp/distinctSubsequences/distinctSubsequences.cpp diff --git a/algorithms/divideTwoInt/divideTwoInt.cpp b/algorithms/cpp/divideTwoInt/divideTwoInt.cpp similarity index 100% rename from algorithms/divideTwoInt/divideTwoInt.cpp rename to algorithms/cpp/divideTwoInt/divideTwoInt.cpp diff --git a/algorithms/dungeonGame/dungeonGame.cpp b/algorithms/cpp/dungeonGame/dungeonGame.cpp similarity index 100% rename from algorithms/dungeonGame/dungeonGame.cpp rename to algorithms/cpp/dungeonGame/dungeonGame.cpp diff --git a/algorithms/editDistance/editDistance.cpp b/algorithms/cpp/editDistance/editDistance.cpp similarity index 100% rename from algorithms/editDistance/editDistance.cpp rename to algorithms/cpp/editDistance/editDistance.cpp diff --git a/algorithms/evaluateReversePolishNotation/evaluateReversePolishNotation.cpp b/algorithms/cpp/evaluateReversePolishNotation/evaluateReversePolishNotation.cpp similarity index 100% rename from algorithms/evaluateReversePolishNotation/evaluateReversePolishNotation.cpp rename to algorithms/cpp/evaluateReversePolishNotation/evaluateReversePolishNotation.cpp diff --git a/algorithms/excelSheetColumnNumber/excelSheetColumnNumber.cpp b/algorithms/cpp/excelSheetColumnNumber/excelSheetColumnNumber.cpp similarity index 100% rename from algorithms/excelSheetColumnNumber/excelSheetColumnNumber.cpp rename to algorithms/cpp/excelSheetColumnNumber/excelSheetColumnNumber.cpp diff --git a/algorithms/excelSheetColumnTitle/excelSheetColumnTitle.cpp b/algorithms/cpp/excelSheetColumnTitle/excelSheetColumnTitle.cpp similarity index 100% rename from algorithms/excelSheetColumnTitle/excelSheetColumnTitle.cpp rename to algorithms/cpp/excelSheetColumnTitle/excelSheetColumnTitle.cpp diff --git a/algorithms/factorialTrailingZeroes/factorialTrailingZeroes.cpp b/algorithms/cpp/factorialTrailingZeroes/factorialTrailingZeroes.cpp similarity index 100% rename from algorithms/factorialTrailingZeroes/factorialTrailingZeroes.cpp rename to algorithms/cpp/factorialTrailingZeroes/factorialTrailingZeroes.cpp diff --git a/algorithms/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArray.II.cpp b/algorithms/cpp/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArray.II.cpp similarity index 100% rename from algorithms/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArray.II.cpp rename to algorithms/cpp/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArray.II.cpp diff --git a/algorithms/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArray.cpp b/algorithms/cpp/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArray.cpp similarity index 100% rename from algorithms/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArray.cpp rename to algorithms/cpp/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArray.cpp diff --git a/algorithms/findPeakElement/findPeakElement.cpp b/algorithms/cpp/findPeakElement/findPeakElement.cpp similarity index 100% rename from algorithms/findPeakElement/findPeakElement.cpp rename to algorithms/cpp/findPeakElement/findPeakElement.cpp diff --git a/algorithms/firstMissingPositive/firstMissingPositive.cpp b/algorithms/cpp/firstMissingPositive/firstMissingPositive.cpp similarity index 100% rename from algorithms/firstMissingPositive/firstMissingPositive.cpp rename to algorithms/cpp/firstMissingPositive/firstMissingPositive.cpp diff --git a/algorithms/flattenBinaryTreeToLinkedList/flattenBinaryTreeToLinkedList.cpp b/algorithms/cpp/flattenBinaryTreeToLinkedList/flattenBinaryTreeToLinkedList.cpp similarity index 100% rename from algorithms/flattenBinaryTreeToLinkedList/flattenBinaryTreeToLinkedList.cpp rename to algorithms/cpp/flattenBinaryTreeToLinkedList/flattenBinaryTreeToLinkedList.cpp diff --git a/algorithms/fractionToRecurringDecimal/fractionToRecurringDecimal.cpp b/algorithms/cpp/fractionToRecurringDecimal/fractionToRecurringDecimal.cpp similarity index 100% rename from algorithms/fractionToRecurringDecimal/fractionToRecurringDecimal.cpp rename to algorithms/cpp/fractionToRecurringDecimal/fractionToRecurringDecimal.cpp diff --git a/algorithms/gasStation/gasStation.cpp b/algorithms/cpp/gasStation/gasStation.cpp similarity index 100% rename from algorithms/gasStation/gasStation.cpp rename to algorithms/cpp/gasStation/gasStation.cpp diff --git a/algorithms/generateParentheses/generateParentheses.cpp b/algorithms/cpp/generateParentheses/generateParentheses.cpp similarity index 100% rename from algorithms/generateParentheses/generateParentheses.cpp rename to algorithms/cpp/generateParentheses/generateParentheses.cpp diff --git a/algorithms/grayCode/grayCode.cpp b/algorithms/cpp/grayCode/grayCode.cpp similarity index 100% rename from algorithms/grayCode/grayCode.cpp rename to algorithms/cpp/grayCode/grayCode.cpp diff --git a/algorithms/happyNumber/HappyNumber.cpp b/algorithms/cpp/happyNumber/HappyNumber.cpp similarity index 100% rename from algorithms/happyNumber/HappyNumber.cpp rename to algorithms/cpp/happyNumber/HappyNumber.cpp diff --git a/algorithms/houseRobber/houseRobber.II.cpp b/algorithms/cpp/houseRobber/houseRobber.II.cpp similarity index 100% rename from algorithms/houseRobber/houseRobber.II.cpp rename to algorithms/cpp/houseRobber/houseRobber.II.cpp diff --git a/algorithms/houseRobber/houseRobber.cpp b/algorithms/cpp/houseRobber/houseRobber.cpp similarity index 100% rename from algorithms/houseRobber/houseRobber.cpp rename to algorithms/cpp/houseRobber/houseRobber.cpp diff --git a/algorithms/implementQueueUsingStacks/ImplementQueueUsingStacks.cpp b/algorithms/cpp/implementQueueUsingStacks/ImplementQueueUsingStacks.cpp similarity index 100% rename from algorithms/implementQueueUsingStacks/ImplementQueueUsingStacks.cpp rename to algorithms/cpp/implementQueueUsingStacks/ImplementQueueUsingStacks.cpp diff --git a/algorithms/implementStackUsingQueues/ImplementStackUsingQueues.cpp b/algorithms/cpp/implementStackUsingQueues/ImplementStackUsingQueues.cpp similarity index 100% rename from algorithms/implementStackUsingQueues/ImplementStackUsingQueues.cpp rename to algorithms/cpp/implementStackUsingQueues/ImplementStackUsingQueues.cpp diff --git a/algorithms/implementTriePrefixTree/ImplementTriePrefixTree.cpp b/algorithms/cpp/implementTriePrefixTree/ImplementTriePrefixTree.cpp similarity index 100% rename from algorithms/implementTriePrefixTree/ImplementTriePrefixTree.cpp rename to algorithms/cpp/implementTriePrefixTree/ImplementTriePrefixTree.cpp diff --git a/algorithms/insertInterval/insertInterval.cpp b/algorithms/cpp/insertInterval/insertInterval.cpp similarity index 100% rename from algorithms/insertInterval/insertInterval.cpp rename to algorithms/cpp/insertInterval/insertInterval.cpp diff --git a/algorithms/insertionSortList/insertionSortList.cpp b/algorithms/cpp/insertionSortList/insertionSortList.cpp similarity index 100% rename from algorithms/insertionSortList/insertionSortList.cpp rename to algorithms/cpp/insertionSortList/insertionSortList.cpp diff --git a/algorithms/integerToRoman/integerToRoman.cpp b/algorithms/cpp/integerToRoman/integerToRoman.cpp similarity index 100% rename from algorithms/integerToRoman/integerToRoman.cpp rename to algorithms/cpp/integerToRoman/integerToRoman.cpp diff --git a/algorithms/interleavingString/interleavingString.cpp b/algorithms/cpp/interleavingString/interleavingString.cpp similarity index 100% rename from algorithms/interleavingString/interleavingString.cpp rename to algorithms/cpp/interleavingString/interleavingString.cpp diff --git a/algorithms/intersectionOfTwoLinkedLists/intersectionOfTwoLinkedLists.cpp b/algorithms/cpp/intersectionOfTwoLinkedLists/intersectionOfTwoLinkedLists.cpp similarity index 100% rename from algorithms/intersectionOfTwoLinkedLists/intersectionOfTwoLinkedLists.cpp rename to algorithms/cpp/intersectionOfTwoLinkedLists/intersectionOfTwoLinkedLists.cpp diff --git a/algorithms/invertBinaryTree/InvertBinaryTree.cpp b/algorithms/cpp/invertBinaryTree/InvertBinaryTree.cpp similarity index 100% rename from algorithms/invertBinaryTree/InvertBinaryTree.cpp rename to algorithms/cpp/invertBinaryTree/InvertBinaryTree.cpp diff --git a/algorithms/isomorphicStrings/IsomorphicStrings.cpp b/algorithms/cpp/isomorphicStrings/IsomorphicStrings.cpp similarity index 100% rename from algorithms/isomorphicStrings/IsomorphicStrings.cpp rename to algorithms/cpp/isomorphicStrings/IsomorphicStrings.cpp diff --git a/algorithms/jumpGame/jumpGame.II.cpp b/algorithms/cpp/jumpGame/jumpGame.II.cpp similarity index 100% rename from algorithms/jumpGame/jumpGame.II.cpp rename to algorithms/cpp/jumpGame/jumpGame.II.cpp diff --git a/algorithms/jumpGame/jumpGame.cpp b/algorithms/cpp/jumpGame/jumpGame.cpp similarity index 100% rename from algorithms/jumpGame/jumpGame.cpp rename to algorithms/cpp/jumpGame/jumpGame.cpp diff --git a/algorithms/kthLargestElementInAnArray/KthLargestElementInAnArray.cpp b/algorithms/cpp/kthLargestElementInAnArray/KthLargestElementInAnArray.cpp similarity index 100% rename from algorithms/kthLargestElementInAnArray/KthLargestElementInAnArray.cpp rename to algorithms/cpp/kthLargestElementInAnArray/KthLargestElementInAnArray.cpp diff --git a/algorithms/kthSmallestElementInaBST/KthSmallestElementInABst.cpp b/algorithms/cpp/kthSmallestElementInaBST/KthSmallestElementInABst.cpp similarity index 100% rename from algorithms/kthSmallestElementInaBST/KthSmallestElementInABst.cpp rename to algorithms/cpp/kthSmallestElementInaBST/KthSmallestElementInABst.cpp diff --git a/algorithms/largestNumber/largestNumber.cpp b/algorithms/cpp/largestNumber/largestNumber.cpp similarity index 100% rename from algorithms/largestNumber/largestNumber.cpp rename to algorithms/cpp/largestNumber/largestNumber.cpp diff --git a/algorithms/largestRectangleInHistogram/largestRectangleInHistogram.cpp b/algorithms/cpp/largestRectangleInHistogram/largestRectangleInHistogram.cpp similarity index 100% rename from algorithms/largestRectangleInHistogram/largestRectangleInHistogram.cpp rename to algorithms/cpp/largestRectangleInHistogram/largestRectangleInHistogram.cpp diff --git a/algorithms/lengthOfLastWord/lengthOfLastWord.cpp b/algorithms/cpp/lengthOfLastWord/lengthOfLastWord.cpp similarity index 100% rename from algorithms/lengthOfLastWord/lengthOfLastWord.cpp rename to algorithms/cpp/lengthOfLastWord/lengthOfLastWord.cpp diff --git a/algorithms/letterCombinationsOfAPhoneNumber/letterCombinationsOfAPhoneNumber.cpp b/algorithms/cpp/letterCombinationsOfAPhoneNumber/letterCombinationsOfAPhoneNumber.cpp similarity index 100% rename from algorithms/letterCombinationsOfAPhoneNumber/letterCombinationsOfAPhoneNumber.cpp rename to algorithms/cpp/letterCombinationsOfAPhoneNumber/letterCombinationsOfAPhoneNumber.cpp diff --git a/algorithms/linkedListCycle/linkedListCycle.II.cpp b/algorithms/cpp/linkedListCycle/linkedListCycle.II.cpp similarity index 100% rename from algorithms/linkedListCycle/linkedListCycle.II.cpp rename to algorithms/cpp/linkedListCycle/linkedListCycle.II.cpp diff --git a/algorithms/linkedListCycle/linkedListCycle.cpp b/algorithms/cpp/linkedListCycle/linkedListCycle.cpp similarity index 100% rename from algorithms/linkedListCycle/linkedListCycle.cpp rename to algorithms/cpp/linkedListCycle/linkedListCycle.cpp diff --git a/algorithms/longestCommonPrefix/longestCommonPrefix.cpp b/algorithms/cpp/longestCommonPrefix/longestCommonPrefix.cpp similarity index 100% rename from algorithms/longestCommonPrefix/longestCommonPrefix.cpp rename to algorithms/cpp/longestCommonPrefix/longestCommonPrefix.cpp diff --git a/algorithms/longestConsecutiveSequence/longestConsecutiveSequence.cpp b/algorithms/cpp/longestConsecutiveSequence/longestConsecutiveSequence.cpp similarity index 100% rename from algorithms/longestConsecutiveSequence/longestConsecutiveSequence.cpp rename to algorithms/cpp/longestConsecutiveSequence/longestConsecutiveSequence.cpp diff --git a/algorithms/longestPalindromicSubstring/longestPalindromicSubstring.cpp b/algorithms/cpp/longestPalindromicSubstring/longestPalindromicSubstring.cpp similarity index 100% rename from algorithms/longestPalindromicSubstring/longestPalindromicSubstring.cpp rename to algorithms/cpp/longestPalindromicSubstring/longestPalindromicSubstring.cpp diff --git a/algorithms/longestSubstringWithAtMostTwoDistinctCharacters/longestSubstringWithAtMostTwoDistinctCharacters.cpp b/algorithms/cpp/longestSubstringWithAtMostTwoDistinctCharacters/longestSubstringWithAtMostTwoDistinctCharacters.cpp similarity index 100% rename from algorithms/longestSubstringWithAtMostTwoDistinctCharacters/longestSubstringWithAtMostTwoDistinctCharacters.cpp rename to algorithms/cpp/longestSubstringWithAtMostTwoDistinctCharacters/longestSubstringWithAtMostTwoDistinctCharacters.cpp diff --git a/algorithms/longestSubstringWithoutRepeatingCharacters/longestSubstringWithoutRepeatingCharacters.cpp b/algorithms/cpp/longestSubstringWithoutRepeatingCharacters/longestSubstringWithoutRepeatingCharacters.cpp similarity index 100% rename from algorithms/longestSubstringWithoutRepeatingCharacters/longestSubstringWithoutRepeatingCharacters.cpp rename to algorithms/cpp/longestSubstringWithoutRepeatingCharacters/longestSubstringWithoutRepeatingCharacters.cpp diff --git a/algorithms/longestValidParentheses/longestValidParentheses.cpp b/algorithms/cpp/longestValidParentheses/longestValidParentheses.cpp similarity index 100% rename from algorithms/longestValidParentheses/longestValidParentheses.cpp rename to algorithms/cpp/longestValidParentheses/longestValidParentheses.cpp diff --git a/algorithms/lowestCommonAncestorOfABinarySearchTree/LowestCommonAncestorOfABinarySearchTree.cpp b/algorithms/cpp/lowestCommonAncestorOfABinarySearchTree/LowestCommonAncestorOfABinarySearchTree.cpp similarity index 100% rename from algorithms/lowestCommonAncestorOfABinarySearchTree/LowestCommonAncestorOfABinarySearchTree.cpp rename to algorithms/cpp/lowestCommonAncestorOfABinarySearchTree/LowestCommonAncestorOfABinarySearchTree.cpp diff --git a/algorithms/lowestCommonAncestorOfABinaryTree/LowestCommonAncestorOfABinaryTree.cpp b/algorithms/cpp/lowestCommonAncestorOfABinaryTree/LowestCommonAncestorOfABinaryTree.cpp similarity index 100% rename from algorithms/lowestCommonAncestorOfABinaryTree/LowestCommonAncestorOfABinaryTree.cpp rename to algorithms/cpp/lowestCommonAncestorOfABinaryTree/LowestCommonAncestorOfABinaryTree.cpp diff --git a/algorithms/majorityElement/majorityElement.II.cpp b/algorithms/cpp/majorityElement/majorityElement.II.cpp similarity index 100% rename from algorithms/majorityElement/majorityElement.II.cpp rename to algorithms/cpp/majorityElement/majorityElement.II.cpp diff --git a/algorithms/majorityElement/majorityElement.cpp b/algorithms/cpp/majorityElement/majorityElement.cpp similarity index 100% rename from algorithms/majorityElement/majorityElement.cpp rename to algorithms/cpp/majorityElement/majorityElement.cpp diff --git a/algorithms/maxPointsOnALine/maxPointsOnALine.cpp b/algorithms/cpp/maxPointsOnALine/maxPointsOnALine.cpp similarity index 100% rename from algorithms/maxPointsOnALine/maxPointsOnALine.cpp rename to algorithms/cpp/maxPointsOnALine/maxPointsOnALine.cpp diff --git a/algorithms/maximalRectangle/maximalRectangle.cpp b/algorithms/cpp/maximalRectangle/maximalRectangle.cpp similarity index 100% rename from algorithms/maximalRectangle/maximalRectangle.cpp rename to algorithms/cpp/maximalRectangle/maximalRectangle.cpp diff --git a/algorithms/maximalSquare/MaximalSquare.cpp b/algorithms/cpp/maximalSquare/MaximalSquare.cpp similarity index 100% rename from algorithms/maximalSquare/MaximalSquare.cpp rename to algorithms/cpp/maximalSquare/MaximalSquare.cpp diff --git a/algorithms/maximumDepthOfBinaryTree/maximumDepthOfBinaryTree.cpp b/algorithms/cpp/maximumDepthOfBinaryTree/maximumDepthOfBinaryTree.cpp similarity index 100% rename from algorithms/maximumDepthOfBinaryTree/maximumDepthOfBinaryTree.cpp rename to algorithms/cpp/maximumDepthOfBinaryTree/maximumDepthOfBinaryTree.cpp diff --git a/algorithms/maximumGap/maximumGap.cpp b/algorithms/cpp/maximumGap/maximumGap.cpp similarity index 100% rename from algorithms/maximumGap/maximumGap.cpp rename to algorithms/cpp/maximumGap/maximumGap.cpp diff --git a/algorithms/maximumProductSubarray/maximumProductSubarray.cpp b/algorithms/cpp/maximumProductSubarray/maximumProductSubarray.cpp similarity index 100% rename from algorithms/maximumProductSubarray/maximumProductSubarray.cpp rename to algorithms/cpp/maximumProductSubarray/maximumProductSubarray.cpp diff --git a/algorithms/maximumSubArray/maximumSubArray.cpp b/algorithms/cpp/maximumSubArray/maximumSubArray.cpp similarity index 100% rename from algorithms/maximumSubArray/maximumSubArray.cpp rename to algorithms/cpp/maximumSubArray/maximumSubArray.cpp diff --git a/algorithms/medianOfTwoSortedArrays/medianOfTwoSortedArrays.cpp b/algorithms/cpp/medianOfTwoSortedArrays/medianOfTwoSortedArrays.cpp similarity index 100% rename from algorithms/medianOfTwoSortedArrays/medianOfTwoSortedArrays.cpp rename to algorithms/cpp/medianOfTwoSortedArrays/medianOfTwoSortedArrays.cpp diff --git a/algorithms/mergeIntervals/mergeIntervals.cpp b/algorithms/cpp/mergeIntervals/mergeIntervals.cpp similarity index 100% rename from algorithms/mergeIntervals/mergeIntervals.cpp rename to algorithms/cpp/mergeIntervals/mergeIntervals.cpp diff --git a/algorithms/mergeKSortedLists/mergeKSortedLists.cpp b/algorithms/cpp/mergeKSortedLists/mergeKSortedLists.cpp similarity index 100% rename from algorithms/mergeKSortedLists/mergeKSortedLists.cpp rename to algorithms/cpp/mergeKSortedLists/mergeKSortedLists.cpp diff --git a/algorithms/mergeTwoSortedArray/mergeTwoSortedArray.cpp b/algorithms/cpp/mergeTwoSortedArray/mergeTwoSortedArray.cpp similarity index 100% rename from algorithms/mergeTwoSortedArray/mergeTwoSortedArray.cpp rename to algorithms/cpp/mergeTwoSortedArray/mergeTwoSortedArray.cpp diff --git a/algorithms/mergeTwoSortedList/mergeTwoSortedList.cpp b/algorithms/cpp/mergeTwoSortedList/mergeTwoSortedList.cpp similarity index 100% rename from algorithms/mergeTwoSortedList/mergeTwoSortedList.cpp rename to algorithms/cpp/mergeTwoSortedList/mergeTwoSortedList.cpp diff --git a/algorithms/minStack/minStack.cpp b/algorithms/cpp/minStack/minStack.cpp similarity index 100% rename from algorithms/minStack/minStack.cpp rename to algorithms/cpp/minStack/minStack.cpp diff --git a/algorithms/minimumDepthOfBinaryTree/minimumDepthOfBinaryTree.cpp b/algorithms/cpp/minimumDepthOfBinaryTree/minimumDepthOfBinaryTree.cpp similarity index 100% rename from algorithms/minimumDepthOfBinaryTree/minimumDepthOfBinaryTree.cpp rename to algorithms/cpp/minimumDepthOfBinaryTree/minimumDepthOfBinaryTree.cpp diff --git a/algorithms/minimumPathSum/minimumPathSum.cpp b/algorithms/cpp/minimumPathSum/minimumPathSum.cpp similarity index 100% rename from algorithms/minimumPathSum/minimumPathSum.cpp rename to algorithms/cpp/minimumPathSum/minimumPathSum.cpp diff --git a/algorithms/minimumSizeSubarraySum/MinimumSizeSubarraySum.cpp b/algorithms/cpp/minimumSizeSubarraySum/MinimumSizeSubarraySum.cpp similarity index 100% rename from algorithms/minimumSizeSubarraySum/MinimumSizeSubarraySum.cpp rename to algorithms/cpp/minimumSizeSubarraySum/MinimumSizeSubarraySum.cpp diff --git a/algorithms/minimumWindowSubstring/minimumWindowSubstring.cpp b/algorithms/cpp/minimumWindowSubstring/minimumWindowSubstring.cpp similarity index 100% rename from algorithms/minimumWindowSubstring/minimumWindowSubstring.cpp rename to algorithms/cpp/minimumWindowSubstring/minimumWindowSubstring.cpp diff --git a/algorithms/missingRanges/missingRanges.cpp b/algorithms/cpp/missingRanges/missingRanges.cpp similarity index 100% rename from algorithms/missingRanges/missingRanges.cpp rename to algorithms/cpp/missingRanges/missingRanges.cpp diff --git a/algorithms/multiplyStrings/multiplyStrings.cpp b/algorithms/cpp/multiplyStrings/multiplyStrings.cpp similarity index 100% rename from algorithms/multiplyStrings/multiplyStrings.cpp rename to algorithms/cpp/multiplyStrings/multiplyStrings.cpp diff --git a/algorithms/nQueens/nQueuens.II.cpp b/algorithms/cpp/nQueens/nQueuens.II.cpp similarity index 100% rename from algorithms/nQueens/nQueuens.II.cpp rename to algorithms/cpp/nQueens/nQueuens.II.cpp diff --git a/algorithms/nQueens/nQueuens.cpp b/algorithms/cpp/nQueens/nQueuens.cpp similarity index 100% rename from algorithms/nQueens/nQueuens.cpp rename to algorithms/cpp/nQueens/nQueuens.cpp diff --git a/algorithms/nextPermutation/nextPermutation.cpp b/algorithms/cpp/nextPermutation/nextPermutation.cpp similarity index 100% rename from algorithms/nextPermutation/nextPermutation.cpp rename to algorithms/cpp/nextPermutation/nextPermutation.cpp diff --git a/algorithms/numberOf1Bits/numberOf1Bits.cpp b/algorithms/cpp/numberOf1Bits/numberOf1Bits.cpp similarity index 100% rename from algorithms/numberOf1Bits/numberOf1Bits.cpp rename to algorithms/cpp/numberOf1Bits/numberOf1Bits.cpp diff --git a/algorithms/numberOfDigitOne/NumberOfDigitOne.cpp b/algorithms/cpp/numberOfDigitOne/NumberOfDigitOne.cpp similarity index 100% rename from algorithms/numberOfDigitOne/NumberOfDigitOne.cpp rename to algorithms/cpp/numberOfDigitOne/NumberOfDigitOne.cpp diff --git a/algorithms/numberOfIslands/NumberOfIslands.cpp b/algorithms/cpp/numberOfIslands/NumberOfIslands.cpp similarity index 100% rename from algorithms/numberOfIslands/NumberOfIslands.cpp rename to algorithms/cpp/numberOfIslands/NumberOfIslands.cpp diff --git a/algorithms/oneEditDistance/oneEditDistance.cpp b/algorithms/cpp/oneEditDistance/oneEditDistance.cpp similarity index 100% rename from algorithms/oneEditDistance/oneEditDistance.cpp rename to algorithms/cpp/oneEditDistance/oneEditDistance.cpp diff --git a/algorithms/palindromeLinkedList/PalindromeLinkedList.cpp b/algorithms/cpp/palindromeLinkedList/PalindromeLinkedList.cpp similarity index 100% rename from algorithms/palindromeLinkedList/PalindromeLinkedList.cpp rename to algorithms/cpp/palindromeLinkedList/PalindromeLinkedList.cpp diff --git a/algorithms/palindromeNumber/palindromeNumber.cpp b/algorithms/cpp/palindromeNumber/palindromeNumber.cpp similarity index 100% rename from algorithms/palindromeNumber/palindromeNumber.cpp rename to algorithms/cpp/palindromeNumber/palindromeNumber.cpp diff --git a/algorithms/palindromePartitioning/palindromePartitioning.II.cpp b/algorithms/cpp/palindromePartitioning/palindromePartitioning.II.cpp similarity index 100% rename from algorithms/palindromePartitioning/palindromePartitioning.II.cpp rename to algorithms/cpp/palindromePartitioning/palindromePartitioning.II.cpp diff --git a/algorithms/palindromePartitioning/palindromePartitioning.cpp b/algorithms/cpp/palindromePartitioning/palindromePartitioning.cpp similarity index 100% rename from algorithms/palindromePartitioning/palindromePartitioning.cpp rename to algorithms/cpp/palindromePartitioning/palindromePartitioning.cpp diff --git a/algorithms/partitionList/partitionList.cpp b/algorithms/cpp/partitionList/partitionList.cpp similarity index 100% rename from algorithms/partitionList/partitionList.cpp rename to algorithms/cpp/partitionList/partitionList.cpp diff --git a/algorithms/pascalTriangle/pascalTriangle.II.cpp b/algorithms/cpp/pascalTriangle/pascalTriangle.II.cpp similarity index 100% rename from algorithms/pascalTriangle/pascalTriangle.II.cpp rename to algorithms/cpp/pascalTriangle/pascalTriangle.II.cpp diff --git a/algorithms/pascalTriangle/pascalTriangle.cpp b/algorithms/cpp/pascalTriangle/pascalTriangle.cpp similarity index 100% rename from algorithms/pascalTriangle/pascalTriangle.cpp rename to algorithms/cpp/pascalTriangle/pascalTriangle.cpp diff --git a/algorithms/pathSum/pathSum.II.cpp b/algorithms/cpp/pathSum/pathSum.II.cpp similarity index 100% rename from algorithms/pathSum/pathSum.II.cpp rename to algorithms/cpp/pathSum/pathSum.II.cpp diff --git a/algorithms/pathSum/pathSum.cpp b/algorithms/cpp/pathSum/pathSum.cpp similarity index 100% rename from algorithms/pathSum/pathSum.cpp rename to algorithms/cpp/pathSum/pathSum.cpp diff --git a/algorithms/permutationSequence/permutationSequence.cpp b/algorithms/cpp/permutationSequence/permutationSequence.cpp similarity index 100% rename from algorithms/permutationSequence/permutationSequence.cpp rename to algorithms/cpp/permutationSequence/permutationSequence.cpp diff --git a/algorithms/permutations/permutations.II.cpp b/algorithms/cpp/permutations/permutations.II.cpp similarity index 100% rename from algorithms/permutations/permutations.II.cpp rename to algorithms/cpp/permutations/permutations.II.cpp diff --git a/algorithms/permutations/permutations.cpp b/algorithms/cpp/permutations/permutations.cpp similarity index 100% rename from algorithms/permutations/permutations.cpp rename to algorithms/cpp/permutations/permutations.cpp diff --git a/algorithms/plusOne/plusOne.cpp b/algorithms/cpp/plusOne/plusOne.cpp similarity index 100% rename from algorithms/plusOne/plusOne.cpp rename to algorithms/cpp/plusOne/plusOne.cpp diff --git a/algorithms/populatingNextRightPointersInEachNode/populatingNextRightPointersInEachNode.II.cpp b/algorithms/cpp/populatingNextRightPointersInEachNode/populatingNextRightPointersInEachNode.II.cpp similarity index 100% rename from algorithms/populatingNextRightPointersInEachNode/populatingNextRightPointersInEachNode.II.cpp rename to algorithms/cpp/populatingNextRightPointersInEachNode/populatingNextRightPointersInEachNode.II.cpp diff --git a/algorithms/populatingNextRightPointersInEachNode/populatingNextRightPointersInEachNode.cpp b/algorithms/cpp/populatingNextRightPointersInEachNode/populatingNextRightPointersInEachNode.cpp similarity index 100% rename from algorithms/populatingNextRightPointersInEachNode/populatingNextRightPointersInEachNode.cpp rename to algorithms/cpp/populatingNextRightPointersInEachNode/populatingNextRightPointersInEachNode.cpp diff --git a/algorithms/pow/pow.cpp b/algorithms/cpp/pow/pow.cpp similarity index 100% rename from algorithms/pow/pow.cpp rename to algorithms/cpp/pow/pow.cpp diff --git a/algorithms/powerOfTwo/PowerOfTwo.cpp b/algorithms/cpp/powerOfTwo/PowerOfTwo.cpp similarity index 100% rename from algorithms/powerOfTwo/PowerOfTwo.cpp rename to algorithms/cpp/powerOfTwo/PowerOfTwo.cpp diff --git a/algorithms/productOfArrayExceptSelf/ProductOfArrayExceptSelf.cpp b/algorithms/cpp/productOfArrayExceptSelf/ProductOfArrayExceptSelf.cpp similarity index 100% rename from algorithms/productOfArrayExceptSelf/ProductOfArrayExceptSelf.cpp rename to algorithms/cpp/productOfArrayExceptSelf/ProductOfArrayExceptSelf.cpp diff --git a/algorithms/readNCharactersGivenRead4/readNCharactersGivenRead4.II.cpp b/algorithms/cpp/readNCharactersGivenRead4/readNCharactersGivenRead4.II.cpp similarity index 100% rename from algorithms/readNCharactersGivenRead4/readNCharactersGivenRead4.II.cpp rename to algorithms/cpp/readNCharactersGivenRead4/readNCharactersGivenRead4.II.cpp diff --git a/algorithms/readNCharactersGivenRead4/readNCharactersGivenRead4.cpp b/algorithms/cpp/readNCharactersGivenRead4/readNCharactersGivenRead4.cpp similarity index 100% rename from algorithms/readNCharactersGivenRead4/readNCharactersGivenRead4.cpp rename to algorithms/cpp/readNCharactersGivenRead4/readNCharactersGivenRead4.cpp diff --git a/algorithms/recoverBinarySearchTree/recoverBinarySearchTree.cpp b/algorithms/cpp/recoverBinarySearchTree/recoverBinarySearchTree.cpp similarity index 100% rename from algorithms/recoverBinarySearchTree/recoverBinarySearchTree.cpp rename to algorithms/cpp/recoverBinarySearchTree/recoverBinarySearchTree.cpp diff --git a/algorithms/rectangleArea/RectangleArea.cpp b/algorithms/cpp/rectangleArea/RectangleArea.cpp similarity index 100% rename from algorithms/rectangleArea/RectangleArea.cpp rename to algorithms/cpp/rectangleArea/RectangleArea.cpp diff --git a/algorithms/regularExpressionMatching/regularExpressionMatching.cpp b/algorithms/cpp/regularExpressionMatching/regularExpressionMatching.cpp similarity index 100% rename from algorithms/regularExpressionMatching/regularExpressionMatching.cpp rename to algorithms/cpp/regularExpressionMatching/regularExpressionMatching.cpp diff --git a/algorithms/removeDuplicatesFromSortedArray/removeDuplicatesFromSortedArray.II.cpp b/algorithms/cpp/removeDuplicatesFromSortedArray/removeDuplicatesFromSortedArray.II.cpp similarity index 100% rename from algorithms/removeDuplicatesFromSortedArray/removeDuplicatesFromSortedArray.II.cpp rename to algorithms/cpp/removeDuplicatesFromSortedArray/removeDuplicatesFromSortedArray.II.cpp diff --git a/algorithms/removeDuplicatesFromSortedArray/removeDuplicatesFromSortedArray.cpp b/algorithms/cpp/removeDuplicatesFromSortedArray/removeDuplicatesFromSortedArray.cpp similarity index 100% rename from algorithms/removeDuplicatesFromSortedArray/removeDuplicatesFromSortedArray.cpp rename to algorithms/cpp/removeDuplicatesFromSortedArray/removeDuplicatesFromSortedArray.cpp diff --git a/algorithms/removeDuplicatesFromSortedList/removeDuplicatesFromSortedList.II.cpp b/algorithms/cpp/removeDuplicatesFromSortedList/removeDuplicatesFromSortedList.II.cpp similarity index 100% rename from algorithms/removeDuplicatesFromSortedList/removeDuplicatesFromSortedList.II.cpp rename to algorithms/cpp/removeDuplicatesFromSortedList/removeDuplicatesFromSortedList.II.cpp diff --git a/algorithms/removeDuplicatesFromSortedList/removeDuplicatesFromSortedList.cpp b/algorithms/cpp/removeDuplicatesFromSortedList/removeDuplicatesFromSortedList.cpp similarity index 100% rename from algorithms/removeDuplicatesFromSortedList/removeDuplicatesFromSortedList.cpp rename to algorithms/cpp/removeDuplicatesFromSortedList/removeDuplicatesFromSortedList.cpp diff --git a/algorithms/removeElement/removeElement.cpp b/algorithms/cpp/removeElement/removeElement.cpp similarity index 100% rename from algorithms/removeElement/removeElement.cpp rename to algorithms/cpp/removeElement/removeElement.cpp diff --git a/algorithms/removeLinkedListElements/RemoveLinkedListElements.cpp b/algorithms/cpp/removeLinkedListElements/RemoveLinkedListElements.cpp similarity index 100% rename from algorithms/removeLinkedListElements/RemoveLinkedListElements.cpp rename to algorithms/cpp/removeLinkedListElements/RemoveLinkedListElements.cpp diff --git a/algorithms/removeNthNodeFromEndOfList/removeNthNodeFromEndOfList.cpp b/algorithms/cpp/removeNthNodeFromEndOfList/removeNthNodeFromEndOfList.cpp similarity index 100% rename from algorithms/removeNthNodeFromEndOfList/removeNthNodeFromEndOfList.cpp rename to algorithms/cpp/removeNthNodeFromEndOfList/removeNthNodeFromEndOfList.cpp diff --git a/algorithms/reorderList/reorderList.cpp b/algorithms/cpp/reorderList/reorderList.cpp similarity index 100% rename from algorithms/reorderList/reorderList.cpp rename to algorithms/cpp/reorderList/reorderList.cpp diff --git a/algorithms/repeatedDNASequences/repeatedDNASequences.cpp b/algorithms/cpp/repeatedDNASequences/repeatedDNASequences.cpp similarity index 100% rename from algorithms/repeatedDNASequences/repeatedDNASequences.cpp rename to algorithms/cpp/repeatedDNASequences/repeatedDNASequences.cpp diff --git a/algorithms/restoreIPAddresses/restoreIPAddresses.cpp b/algorithms/cpp/restoreIPAddresses/restoreIPAddresses.cpp similarity index 100% rename from algorithms/restoreIPAddresses/restoreIPAddresses.cpp rename to algorithms/cpp/restoreIPAddresses/restoreIPAddresses.cpp diff --git a/algorithms/reverseBits/reverseBits.cpp b/algorithms/cpp/reverseBits/reverseBits.cpp similarity index 100% rename from algorithms/reverseBits/reverseBits.cpp rename to algorithms/cpp/reverseBits/reverseBits.cpp diff --git a/algorithms/reverseInteger/reverseInteger.cpp b/algorithms/cpp/reverseInteger/reverseInteger.cpp similarity index 100% rename from algorithms/reverseInteger/reverseInteger.cpp rename to algorithms/cpp/reverseInteger/reverseInteger.cpp diff --git a/algorithms/reverseLinkedList/reverseLinkedList.II.cpp b/algorithms/cpp/reverseLinkedList/reverseLinkedList.II.cpp similarity index 100% rename from algorithms/reverseLinkedList/reverseLinkedList.II.cpp rename to algorithms/cpp/reverseLinkedList/reverseLinkedList.II.cpp diff --git a/algorithms/reverseLinkedList/reverseLinkedList.cpp b/algorithms/cpp/reverseLinkedList/reverseLinkedList.cpp similarity index 100% rename from algorithms/reverseLinkedList/reverseLinkedList.cpp rename to algorithms/cpp/reverseLinkedList/reverseLinkedList.cpp diff --git a/algorithms/reverseNodesInKGroup/reverseNodesInKGroup.cpp b/algorithms/cpp/reverseNodesInKGroup/reverseNodesInKGroup.cpp similarity index 100% rename from algorithms/reverseNodesInKGroup/reverseNodesInKGroup.cpp rename to algorithms/cpp/reverseNodesInKGroup/reverseNodesInKGroup.cpp diff --git a/algorithms/reverseWordsInAString/reverseWordsInAString.II.cpp b/algorithms/cpp/reverseWordsInAString/reverseWordsInAString.II.cpp similarity index 100% rename from algorithms/reverseWordsInAString/reverseWordsInAString.II.cpp rename to algorithms/cpp/reverseWordsInAString/reverseWordsInAString.II.cpp diff --git a/algorithms/reverseWordsInAString/reverseWordsInAString.cpp b/algorithms/cpp/reverseWordsInAString/reverseWordsInAString.cpp similarity index 100% rename from algorithms/reverseWordsInAString/reverseWordsInAString.cpp rename to algorithms/cpp/reverseWordsInAString/reverseWordsInAString.cpp diff --git a/algorithms/romanToInteger/romanToInteger.cpp b/algorithms/cpp/romanToInteger/romanToInteger.cpp similarity index 100% rename from algorithms/romanToInteger/romanToInteger.cpp rename to algorithms/cpp/romanToInteger/romanToInteger.cpp diff --git a/algorithms/rotateArray/rotateArray.cpp b/algorithms/cpp/rotateArray/rotateArray.cpp similarity index 100% rename from algorithms/rotateArray/rotateArray.cpp rename to algorithms/cpp/rotateArray/rotateArray.cpp diff --git a/algorithms/rotateImage/rotateImage.cpp b/algorithms/cpp/rotateImage/rotateImage.cpp similarity index 100% rename from algorithms/rotateImage/rotateImage.cpp rename to algorithms/cpp/rotateImage/rotateImage.cpp diff --git a/algorithms/rotateList/rotateList.cpp b/algorithms/cpp/rotateList/rotateList.cpp similarity index 100% rename from algorithms/rotateList/rotateList.cpp rename to algorithms/cpp/rotateList/rotateList.cpp diff --git a/algorithms/sameTree/sameTree.cpp b/algorithms/cpp/sameTree/sameTree.cpp similarity index 100% rename from algorithms/sameTree/sameTree.cpp rename to algorithms/cpp/sameTree/sameTree.cpp diff --git a/algorithms/scrambleString/scrambleString.cpp b/algorithms/cpp/scrambleString/scrambleString.cpp similarity index 100% rename from algorithms/scrambleString/scrambleString.cpp rename to algorithms/cpp/scrambleString/scrambleString.cpp diff --git a/algorithms/search2DMatrix/search2DMatrix.II.cpp b/algorithms/cpp/search2DMatrix/search2DMatrix.II.cpp similarity index 100% rename from algorithms/search2DMatrix/search2DMatrix.II.cpp rename to algorithms/cpp/search2DMatrix/search2DMatrix.II.cpp diff --git a/algorithms/search2DMatrix/search2DMatrix.cpp b/algorithms/cpp/search2DMatrix/search2DMatrix.cpp similarity index 100% rename from algorithms/search2DMatrix/search2DMatrix.cpp rename to algorithms/cpp/search2DMatrix/search2DMatrix.cpp diff --git a/algorithms/searchForRange/searchForRange.cpp b/algorithms/cpp/searchForRange/searchForRange.cpp similarity index 100% rename from algorithms/searchForRange/searchForRange.cpp rename to algorithms/cpp/searchForRange/searchForRange.cpp diff --git a/algorithms/searchInRotatedSortedArray/searchInRotatedSortedArray.II.cpp b/algorithms/cpp/searchInRotatedSortedArray/searchInRotatedSortedArray.II.cpp similarity index 100% rename from algorithms/searchInRotatedSortedArray/searchInRotatedSortedArray.II.cpp rename to algorithms/cpp/searchInRotatedSortedArray/searchInRotatedSortedArray.II.cpp diff --git a/algorithms/searchInRotatedSortedArray/searchInRotatedSortedArray.cpp b/algorithms/cpp/searchInRotatedSortedArray/searchInRotatedSortedArray.cpp similarity index 100% rename from algorithms/searchInRotatedSortedArray/searchInRotatedSortedArray.cpp rename to algorithms/cpp/searchInRotatedSortedArray/searchInRotatedSortedArray.cpp diff --git a/algorithms/searchInsertPosition/searchInsertPosition.cpp b/algorithms/cpp/searchInsertPosition/searchInsertPosition.cpp similarity index 100% rename from algorithms/searchInsertPosition/searchInsertPosition.cpp rename to algorithms/cpp/searchInsertPosition/searchInsertPosition.cpp diff --git a/algorithms/setMatrixZeroes/setMatrixZeroes.cpp b/algorithms/cpp/setMatrixZeroes/setMatrixZeroes.cpp similarity index 100% rename from algorithms/setMatrixZeroes/setMatrixZeroes.cpp rename to algorithms/cpp/setMatrixZeroes/setMatrixZeroes.cpp diff --git a/algorithms/shortestPalindrome/ShortestPalindrome.cpp b/algorithms/cpp/shortestPalindrome/ShortestPalindrome.cpp similarity index 100% rename from algorithms/shortestPalindrome/ShortestPalindrome.cpp rename to algorithms/cpp/shortestPalindrome/ShortestPalindrome.cpp diff --git a/algorithms/simplifyPath/simplifyPath.cpp b/algorithms/cpp/simplifyPath/simplifyPath.cpp similarity index 100% rename from algorithms/simplifyPath/simplifyPath.cpp rename to algorithms/cpp/simplifyPath/simplifyPath.cpp diff --git a/algorithms/singleNumber/singleNumber.II.cpp b/algorithms/cpp/singleNumber/singleNumber.II.cpp similarity index 100% rename from algorithms/singleNumber/singleNumber.II.cpp rename to algorithms/cpp/singleNumber/singleNumber.II.cpp diff --git a/algorithms/singleNumber/singleNumber.cpp b/algorithms/cpp/singleNumber/singleNumber.cpp similarity index 100% rename from algorithms/singleNumber/singleNumber.cpp rename to algorithms/cpp/singleNumber/singleNumber.cpp diff --git a/algorithms/slidingWindowMaximum/SlidingWindowMaximum.cpp b/algorithms/cpp/slidingWindowMaximum/SlidingWindowMaximum.cpp similarity index 100% rename from algorithms/slidingWindowMaximum/SlidingWindowMaximum.cpp rename to algorithms/cpp/slidingWindowMaximum/SlidingWindowMaximum.cpp diff --git a/algorithms/sortColors/sortColors.cpp b/algorithms/cpp/sortColors/sortColors.cpp similarity index 100% rename from algorithms/sortColors/sortColors.cpp rename to algorithms/cpp/sortColors/sortColors.cpp diff --git a/algorithms/sortList/sortList.cpp b/algorithms/cpp/sortList/sortList.cpp similarity index 100% rename from algorithms/sortList/sortList.cpp rename to algorithms/cpp/sortList/sortList.cpp diff --git a/algorithms/spiralMatrix/spiralMatrix.II.cpp b/algorithms/cpp/spiralMatrix/spiralMatrix.II.cpp similarity index 100% rename from algorithms/spiralMatrix/spiralMatrix.II.cpp rename to algorithms/cpp/spiralMatrix/spiralMatrix.II.cpp diff --git a/algorithms/spiralMatrix/spiralMatrix.cpp b/algorithms/cpp/spiralMatrix/spiralMatrix.cpp similarity index 100% rename from algorithms/spiralMatrix/spiralMatrix.cpp rename to algorithms/cpp/spiralMatrix/spiralMatrix.cpp diff --git a/algorithms/sqrt/sqrt.cpp b/algorithms/cpp/sqrt/sqrt.cpp similarity index 100% rename from algorithms/sqrt/sqrt.cpp rename to algorithms/cpp/sqrt/sqrt.cpp diff --git a/algorithms/strStr/strStr.cpp b/algorithms/cpp/strStr/strStr.cpp similarity index 100% rename from algorithms/strStr/strStr.cpp rename to algorithms/cpp/strStr/strStr.cpp diff --git a/algorithms/stringToIntegerAtoi/stringToIntegerAtoi.cpp b/algorithms/cpp/stringToIntegerAtoi/stringToIntegerAtoi.cpp similarity index 100% rename from algorithms/stringToIntegerAtoi/stringToIntegerAtoi.cpp rename to algorithms/cpp/stringToIntegerAtoi/stringToIntegerAtoi.cpp diff --git a/algorithms/subsets/subsets.II.cpp b/algorithms/cpp/subsets/subsets.II.cpp similarity index 100% rename from algorithms/subsets/subsets.II.cpp rename to algorithms/cpp/subsets/subsets.II.cpp diff --git a/algorithms/subsets/subsets.cpp b/algorithms/cpp/subsets/subsets.cpp similarity index 100% rename from algorithms/subsets/subsets.cpp rename to algorithms/cpp/subsets/subsets.cpp diff --git a/algorithms/substringWithConcatenationOfAllWords/substringWithConcatenationOfAllWords.cpp b/algorithms/cpp/substringWithConcatenationOfAllWords/substringWithConcatenationOfAllWords.cpp similarity index 100% rename from algorithms/substringWithConcatenationOfAllWords/substringWithConcatenationOfAllWords.cpp rename to algorithms/cpp/substringWithConcatenationOfAllWords/substringWithConcatenationOfAllWords.cpp diff --git a/algorithms/sudokuSolver/sudokuSolver.cpp b/algorithms/cpp/sudokuSolver/sudokuSolver.cpp similarity index 100% rename from algorithms/sudokuSolver/sudokuSolver.cpp rename to algorithms/cpp/sudokuSolver/sudokuSolver.cpp diff --git a/algorithms/sumRootToLeafNumber/sumRootToLeafNumber.cpp b/algorithms/cpp/sumRootToLeafNumber/sumRootToLeafNumber.cpp similarity index 100% rename from algorithms/sumRootToLeafNumber/sumRootToLeafNumber.cpp rename to algorithms/cpp/sumRootToLeafNumber/sumRootToLeafNumber.cpp diff --git a/algorithms/summaryRanges/SummaryRanges.cpp b/algorithms/cpp/summaryRanges/SummaryRanges.cpp similarity index 100% rename from algorithms/summaryRanges/SummaryRanges.cpp rename to algorithms/cpp/summaryRanges/SummaryRanges.cpp diff --git a/algorithms/surroundedRegions/surroundedRegions.cpp b/algorithms/cpp/surroundedRegions/surroundedRegions.cpp similarity index 100% rename from algorithms/surroundedRegions/surroundedRegions.cpp rename to algorithms/cpp/surroundedRegions/surroundedRegions.cpp diff --git a/algorithms/swapNodesInPairs/swapNodesInPairs.cpp b/algorithms/cpp/swapNodesInPairs/swapNodesInPairs.cpp similarity index 100% rename from algorithms/swapNodesInPairs/swapNodesInPairs.cpp rename to algorithms/cpp/swapNodesInPairs/swapNodesInPairs.cpp diff --git a/algorithms/symmetricTree/symmetricTree.cpp b/algorithms/cpp/symmetricTree/symmetricTree.cpp similarity index 100% rename from algorithms/symmetricTree/symmetricTree.cpp rename to algorithms/cpp/symmetricTree/symmetricTree.cpp diff --git a/algorithms/textJustification/textJustification.cpp b/algorithms/cpp/textJustification/textJustification.cpp similarity index 100% rename from algorithms/textJustification/textJustification.cpp rename to algorithms/cpp/textJustification/textJustification.cpp diff --git a/algorithms/theSkylineProblem/TheSkylineProblem.cpp b/algorithms/cpp/theSkylineProblem/TheSkylineProblem.cpp similarity index 100% rename from algorithms/theSkylineProblem/TheSkylineProblem.cpp rename to algorithms/cpp/theSkylineProblem/TheSkylineProblem.cpp diff --git a/algorithms/trappingRainWater/trappingRainWater.cpp b/algorithms/cpp/trappingRainWater/trappingRainWater.cpp similarity index 100% rename from algorithms/trappingRainWater/trappingRainWater.cpp rename to algorithms/cpp/trappingRainWater/trappingRainWater.cpp diff --git a/algorithms/triangle/triangle.cpp b/algorithms/cpp/triangle/triangle.cpp similarity index 100% rename from algorithms/triangle/triangle.cpp rename to algorithms/cpp/triangle/triangle.cpp diff --git a/algorithms/twoSum/twoSum.II.cpp b/algorithms/cpp/twoSum/twoSum.II.cpp similarity index 100% rename from algorithms/twoSum/twoSum.II.cpp rename to algorithms/cpp/twoSum/twoSum.II.cpp diff --git a/algorithms/twoSum/twoSum.III.cpp b/algorithms/cpp/twoSum/twoSum.III.cpp similarity index 100% rename from algorithms/twoSum/twoSum.III.cpp rename to algorithms/cpp/twoSum/twoSum.III.cpp diff --git a/algorithms/twoSum/twoSum.cpp b/algorithms/cpp/twoSum/twoSum.cpp similarity index 100% rename from algorithms/twoSum/twoSum.cpp rename to algorithms/cpp/twoSum/twoSum.cpp diff --git a/algorithms/uniqueBinarySearchTrees/uniqueBinarySearchTrees.II.cpp b/algorithms/cpp/uniqueBinarySearchTrees/uniqueBinarySearchTrees.II.cpp similarity index 100% rename from algorithms/uniqueBinarySearchTrees/uniqueBinarySearchTrees.II.cpp rename to algorithms/cpp/uniqueBinarySearchTrees/uniqueBinarySearchTrees.II.cpp diff --git a/algorithms/uniqueBinarySearchTrees/uniqueBinarySearchTrees.cpp b/algorithms/cpp/uniqueBinarySearchTrees/uniqueBinarySearchTrees.cpp similarity index 100% rename from algorithms/uniqueBinarySearchTrees/uniqueBinarySearchTrees.cpp rename to algorithms/cpp/uniqueBinarySearchTrees/uniqueBinarySearchTrees.cpp diff --git a/algorithms/uniquePaths/uniquePaths.II.cpp b/algorithms/cpp/uniquePaths/uniquePaths.II.cpp similarity index 100% rename from algorithms/uniquePaths/uniquePaths.II.cpp rename to algorithms/cpp/uniquePaths/uniquePaths.II.cpp diff --git a/algorithms/uniquePaths/uniquePaths.cpp b/algorithms/cpp/uniquePaths/uniquePaths.cpp similarity index 100% rename from algorithms/uniquePaths/uniquePaths.cpp rename to algorithms/cpp/uniquePaths/uniquePaths.cpp diff --git a/algorithms/validNumber/validNumber.cpp b/algorithms/cpp/validNumber/validNumber.cpp similarity index 100% rename from algorithms/validNumber/validNumber.cpp rename to algorithms/cpp/validNumber/validNumber.cpp diff --git a/algorithms/validPalindrome/validPalindrome.cpp b/algorithms/cpp/validPalindrome/validPalindrome.cpp similarity index 100% rename from algorithms/validPalindrome/validPalindrome.cpp rename to algorithms/cpp/validPalindrome/validPalindrome.cpp diff --git a/algorithms/validParentheses/validParentheses.cpp b/algorithms/cpp/validParentheses/validParentheses.cpp similarity index 100% rename from algorithms/validParentheses/validParentheses.cpp rename to algorithms/cpp/validParentheses/validParentheses.cpp diff --git a/algorithms/validSudoku/validSudoku.cpp b/algorithms/cpp/validSudoku/validSudoku.cpp similarity index 100% rename from algorithms/validSudoku/validSudoku.cpp rename to algorithms/cpp/validSudoku/validSudoku.cpp diff --git a/algorithms/validateBinarySearchTree/validateBinarySearchTree.cpp b/algorithms/cpp/validateBinarySearchTree/validateBinarySearchTree.cpp similarity index 100% rename from algorithms/validateBinarySearchTree/validateBinarySearchTree.cpp rename to algorithms/cpp/validateBinarySearchTree/validateBinarySearchTree.cpp diff --git a/algorithms/wildcardMatching/wildcardMatching.cpp b/algorithms/cpp/wildcardMatching/wildcardMatching.cpp similarity index 100% rename from algorithms/wildcardMatching/wildcardMatching.cpp rename to algorithms/cpp/wildcardMatching/wildcardMatching.cpp diff --git a/algorithms/wordBreak/wordBreak.II.cpp b/algorithms/cpp/wordBreak/wordBreak.II.cpp similarity index 100% rename from algorithms/wordBreak/wordBreak.II.cpp rename to algorithms/cpp/wordBreak/wordBreak.II.cpp diff --git a/algorithms/wordBreak/wordBreak.cpp b/algorithms/cpp/wordBreak/wordBreak.cpp similarity index 100% rename from algorithms/wordBreak/wordBreak.cpp rename to algorithms/cpp/wordBreak/wordBreak.cpp diff --git a/algorithms/wordLadder/wordLadder.II.cpp b/algorithms/cpp/wordLadder/wordLadder.II.cpp similarity index 100% rename from algorithms/wordLadder/wordLadder.II.cpp rename to algorithms/cpp/wordLadder/wordLadder.II.cpp diff --git a/algorithms/wordLadder/wordLadder.cpp b/algorithms/cpp/wordLadder/wordLadder.cpp similarity index 100% rename from algorithms/wordLadder/wordLadder.cpp rename to algorithms/cpp/wordLadder/wordLadder.cpp diff --git a/algorithms/wordSearch/wordSearch.II.cpp b/algorithms/cpp/wordSearch/wordSearch.II.cpp similarity index 100% rename from algorithms/wordSearch/wordSearch.II.cpp rename to algorithms/cpp/wordSearch/wordSearch.II.cpp diff --git a/algorithms/wordSearch/wordSearch.cpp b/algorithms/cpp/wordSearch/wordSearch.cpp similarity index 100% rename from algorithms/wordSearch/wordSearch.cpp rename to algorithms/cpp/wordSearch/wordSearch.cpp diff --git a/algorithms/zigZagConversion/zigZagConversion.cpp b/algorithms/cpp/zigZagConversion/zigZagConversion.cpp similarity index 100% rename from algorithms/zigZagConversion/zigZagConversion.cpp rename to algorithms/cpp/zigZagConversion/zigZagConversion.cpp diff --git a/algorithms-java/algorithms-java.iml b/algorithms/java/algorithms-java.iml similarity index 100% rename from algorithms-java/algorithms-java.iml rename to algorithms/java/algorithms-java.iml diff --git a/algorithms-java/junit-4.7.jar b/algorithms/java/junit-4.7.jar similarity index 100% rename from algorithms-java/junit-4.7.jar rename to algorithms/java/junit-4.7.jar diff --git a/algorithms-java/src/balancedBinaryTree/TreeNode.java b/algorithms/java/src/balancedBinaryTree/TreeNode.java similarity index 100% rename from algorithms-java/src/balancedBinaryTree/TreeNode.java rename to algorithms/java/src/balancedBinaryTree/TreeNode.java diff --git a/algorithms-java/src/balancedBinaryTree/balancedBinaryTree.java b/algorithms/java/src/balancedBinaryTree/balancedBinaryTree.java similarity index 100% rename from algorithms-java/src/balancedBinaryTree/balancedBinaryTree.java rename to algorithms/java/src/balancedBinaryTree/balancedBinaryTree.java diff --git a/algorithms-java/src/balancedBinaryTree/balancedBinaryTreeTest.java b/algorithms/java/src/balancedBinaryTree/balancedBinaryTreeTest.java similarity index 100% rename from algorithms-java/src/balancedBinaryTree/balancedBinaryTreeTest.java rename to algorithms/java/src/balancedBinaryTree/balancedBinaryTreeTest.java diff --git a/algorithms-java/src/binarySearchTreeIterator/TreeNode.java b/algorithms/java/src/binarySearchTreeIterator/TreeNode.java similarity index 100% rename from algorithms-java/src/binarySearchTreeIterator/TreeNode.java rename to algorithms/java/src/binarySearchTreeIterator/TreeNode.java diff --git a/algorithms-java/src/binarySearchTreeIterator/binarySearchTreeIterator.java b/algorithms/java/src/binarySearchTreeIterator/binarySearchTreeIterator.java similarity index 100% rename from algorithms-java/src/binarySearchTreeIterator/binarySearchTreeIterator.java rename to algorithms/java/src/binarySearchTreeIterator/binarySearchTreeIterator.java diff --git a/algorithms-java/src/binarySearchTreeIterator/binarySearchTreeIteratorTest.java b/algorithms/java/src/binarySearchTreeIterator/binarySearchTreeIteratorTest.java similarity index 100% rename from algorithms-java/src/binarySearchTreeIterator/binarySearchTreeIteratorTest.java rename to algorithms/java/src/binarySearchTreeIterator/binarySearchTreeIteratorTest.java diff --git a/algorithms-java/src/binaryTreeBFSTraversal/TreeNode.java b/algorithms/java/src/binaryTreeBFSTraversal/TreeNode.java similarity index 100% rename from algorithms-java/src/binaryTreeBFSTraversal/TreeNode.java rename to algorithms/java/src/binaryTreeBFSTraversal/TreeNode.java diff --git a/algorithms-java/src/binaryTreeBFSTraversal/binaryTreeBFSTraversal.java b/algorithms/java/src/binaryTreeBFSTraversal/binaryTreeBFSTraversal.java similarity index 100% rename from algorithms-java/src/binaryTreeBFSTraversal/binaryTreeBFSTraversal.java rename to algorithms/java/src/binaryTreeBFSTraversal/binaryTreeBFSTraversal.java diff --git a/algorithms-java/src/binaryTreeBFSTraversal/binaryTreeBFSTraversalTest.java b/algorithms/java/src/binaryTreeBFSTraversal/binaryTreeBFSTraversalTest.java similarity index 100% rename from algorithms-java/src/binaryTreeBFSTraversal/binaryTreeBFSTraversalTest.java rename to algorithms/java/src/binaryTreeBFSTraversal/binaryTreeBFSTraversalTest.java diff --git a/algorithms-java/src/binaryTreeLevelOrderTraversal/TreeNode.java b/algorithms/java/src/binaryTreeLevelOrderTraversal/TreeNode.java similarity index 100% rename from algorithms-java/src/binaryTreeLevelOrderTraversal/TreeNode.java rename to algorithms/java/src/binaryTreeLevelOrderTraversal/TreeNode.java diff --git a/algorithms-java/src/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversal.java b/algorithms/java/src/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversal.java similarity index 100% rename from algorithms-java/src/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversal.java rename to algorithms/java/src/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversal.java diff --git a/algorithms-java/src/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversalTest.java b/algorithms/java/src/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversalTest.java similarity index 100% rename from algorithms-java/src/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversalTest.java rename to algorithms/java/src/binaryTreeLevelOrderTraversal/binaryTreeLevelOrderTraversalTest.java diff --git a/algorithms-java/src/binaryTreeMaximumPathSum/TreeNode.java b/algorithms/java/src/binaryTreeMaximumPathSum/TreeNode.java similarity index 100% rename from algorithms-java/src/binaryTreeMaximumPathSum/TreeNode.java rename to algorithms/java/src/binaryTreeMaximumPathSum/TreeNode.java diff --git a/algorithms-java/src/binaryTreeMaximumPathSum/binaryTreeMaximumPathSum.java b/algorithms/java/src/binaryTreeMaximumPathSum/binaryTreeMaximumPathSum.java similarity index 100% rename from algorithms-java/src/binaryTreeMaximumPathSum/binaryTreeMaximumPathSum.java rename to algorithms/java/src/binaryTreeMaximumPathSum/binaryTreeMaximumPathSum.java diff --git a/algorithms-java/src/binaryTreeMaximumPathSum/binaryTreeMaximumPathSumTest.java b/algorithms/java/src/binaryTreeMaximumPathSum/binaryTreeMaximumPathSumTest.java similarity index 100% rename from algorithms-java/src/binaryTreeMaximumPathSum/binaryTreeMaximumPathSumTest.java rename to algorithms/java/src/binaryTreeMaximumPathSum/binaryTreeMaximumPathSumTest.java diff --git a/algorithms-java/src/binaryTreePreorderTraversal/TreeNode.java b/algorithms/java/src/binaryTreePreorderTraversal/TreeNode.java similarity index 100% rename from algorithms-java/src/binaryTreePreorderTraversal/TreeNode.java rename to algorithms/java/src/binaryTreePreorderTraversal/TreeNode.java diff --git a/algorithms-java/src/binaryTreePreorderTraversal/binaryTreePreorderTraversal.java b/algorithms/java/src/binaryTreePreorderTraversal/binaryTreePreorderTraversal.java similarity index 100% rename from algorithms-java/src/binaryTreePreorderTraversal/binaryTreePreorderTraversal.java rename to algorithms/java/src/binaryTreePreorderTraversal/binaryTreePreorderTraversal.java diff --git a/algorithms-java/src/binaryTreePreorderTraversal/binaryTreePreorderTraversalTest.java b/algorithms/java/src/binaryTreePreorderTraversal/binaryTreePreorderTraversalTest.java similarity index 100% rename from algorithms-java/src/binaryTreePreorderTraversal/binaryTreePreorderTraversalTest.java rename to algorithms/java/src/binaryTreePreorderTraversal/binaryTreePreorderTraversalTest.java diff --git a/algorithms-java/src/dynamicProgramming/climbStairs/climbStairs.java b/algorithms/java/src/dynamicProgramming/climbStairs/climbStairs.java similarity index 100% rename from algorithms-java/src/dynamicProgramming/climbStairs/climbStairs.java rename to algorithms/java/src/dynamicProgramming/climbStairs/climbStairs.java diff --git a/algorithms-java/src/dynamicProgramming/climbStairs/climbStairsTest.java b/algorithms/java/src/dynamicProgramming/climbStairs/climbStairsTest.java similarity index 100% rename from algorithms-java/src/dynamicProgramming/climbStairs/climbStairsTest.java rename to algorithms/java/src/dynamicProgramming/climbStairs/climbStairsTest.java diff --git a/algorithms-java/src/dynamicProgramming/minimumPathSum/minimumPathSum.java b/algorithms/java/src/dynamicProgramming/minimumPathSum/minimumPathSum.java similarity index 100% rename from algorithms-java/src/dynamicProgramming/minimumPathSum/minimumPathSum.java rename to algorithms/java/src/dynamicProgramming/minimumPathSum/minimumPathSum.java diff --git a/algorithms-java/src/dynamicProgramming/minimumPathSum/minimumPathSumTest.java b/algorithms/java/src/dynamicProgramming/minimumPathSum/minimumPathSumTest.java similarity index 100% rename from algorithms-java/src/dynamicProgramming/minimumPathSum/minimumPathSumTest.java rename to algorithms/java/src/dynamicProgramming/minimumPathSum/minimumPathSumTest.java diff --git a/algorithms-java/src/dynamicProgramming/triangle/triangle.java b/algorithms/java/src/dynamicProgramming/triangle/triangle.java similarity index 100% rename from algorithms-java/src/dynamicProgramming/triangle/triangle.java rename to algorithms/java/src/dynamicProgramming/triangle/triangle.java diff --git a/algorithms-java/src/dynamicProgramming/triangle/triangleTest.java b/algorithms/java/src/dynamicProgramming/triangle/triangleTest.java similarity index 100% rename from algorithms-java/src/dynamicProgramming/triangle/triangleTest.java rename to algorithms/java/src/dynamicProgramming/triangle/triangleTest.java diff --git a/algorithms-java/src/dynamicProgramming/uniquePaths/uniquePaths.java b/algorithms/java/src/dynamicProgramming/uniquePaths/uniquePaths.java similarity index 100% rename from algorithms-java/src/dynamicProgramming/uniquePaths/uniquePaths.java rename to algorithms/java/src/dynamicProgramming/uniquePaths/uniquePaths.java diff --git a/algorithms-java/src/dynamicProgramming/uniquePaths/uniquePathsII.java b/algorithms/java/src/dynamicProgramming/uniquePaths/uniquePathsII.java similarity index 100% rename from algorithms-java/src/dynamicProgramming/uniquePaths/uniquePathsII.java rename to algorithms/java/src/dynamicProgramming/uniquePaths/uniquePathsII.java diff --git a/algorithms-java/src/dynamicProgramming/uniquePaths/uniquePathsIITest.java b/algorithms/java/src/dynamicProgramming/uniquePaths/uniquePathsIITest.java similarity index 100% rename from algorithms-java/src/dynamicProgramming/uniquePaths/uniquePathsIITest.java rename to algorithms/java/src/dynamicProgramming/uniquePaths/uniquePathsIITest.java diff --git a/algorithms-java/src/dynamicProgramming/uniquePaths/uniquePathsTest.java b/algorithms/java/src/dynamicProgramming/uniquePaths/uniquePathsTest.java similarity index 100% rename from algorithms-java/src/dynamicProgramming/uniquePaths/uniquePathsTest.java rename to algorithms/java/src/dynamicProgramming/uniquePaths/uniquePathsTest.java diff --git a/algorithms-java/src/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArray.java b/algorithms/java/src/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArray.java similarity index 100% rename from algorithms-java/src/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArray.java rename to algorithms/java/src/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArray.java diff --git a/algorithms-java/src/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArrayTest.java b/algorithms/java/src/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArrayTest.java similarity index 100% rename from algorithms-java/src/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArrayTest.java rename to algorithms/java/src/findMinimumInRotatedSortedArray/findMinimumInRotatedSortedArrayTest.java diff --git a/algorithms-java/src/findPeakElement/findPeakElement.java b/algorithms/java/src/findPeakElement/findPeakElement.java similarity index 100% rename from algorithms-java/src/findPeakElement/findPeakElement.java rename to algorithms/java/src/findPeakElement/findPeakElement.java diff --git a/algorithms-java/src/findPeakElement/findPeakElementTest.java b/algorithms/java/src/findPeakElement/findPeakElementTest.java similarity index 100% rename from algorithms-java/src/findPeakElement/findPeakElementTest.java rename to algorithms/java/src/findPeakElement/findPeakElementTest.java diff --git a/algorithms-java/src/firstBadVersion/VersionControl.java b/algorithms/java/src/firstBadVersion/VersionControl.java similarity index 100% rename from algorithms-java/src/firstBadVersion/VersionControl.java rename to algorithms/java/src/firstBadVersion/VersionControl.java diff --git a/algorithms-java/src/firstBadVersion/firstBadVersion.java b/algorithms/java/src/firstBadVersion/firstBadVersion.java similarity index 100% rename from algorithms-java/src/firstBadVersion/firstBadVersion.java rename to algorithms/java/src/firstBadVersion/firstBadVersion.java diff --git a/algorithms-java/src/firstBadVersion/firstBadVersionTest.java b/algorithms/java/src/firstBadVersion/firstBadVersionTest.java similarity index 100% rename from algorithms-java/src/firstBadVersion/firstBadVersionTest.java rename to algorithms/java/src/firstBadVersion/firstBadVersionTest.java diff --git a/algorithms-java/src/inorderSuccessorInBST/TreeNode.java b/algorithms/java/src/inorderSuccessorInBST/TreeNode.java similarity index 100% rename from algorithms-java/src/inorderSuccessorInBST/TreeNode.java rename to algorithms/java/src/inorderSuccessorInBST/TreeNode.java diff --git a/algorithms-java/src/inorderSuccessorInBST/inorderSuccessorInBST.java b/algorithms/java/src/inorderSuccessorInBST/inorderSuccessorInBST.java similarity index 100% rename from algorithms-java/src/inorderSuccessorInBST/inorderSuccessorInBST.java rename to algorithms/java/src/inorderSuccessorInBST/inorderSuccessorInBST.java diff --git a/algorithms-java/src/inorderSuccessorInBST/inorderSuccessorInBSTTest.java b/algorithms/java/src/inorderSuccessorInBST/inorderSuccessorInBSTTest.java similarity index 100% rename from algorithms-java/src/inorderSuccessorInBST/inorderSuccessorInBSTTest.java rename to algorithms/java/src/inorderSuccessorInBST/inorderSuccessorInBSTTest.java diff --git a/algorithms-java/src/lowestCommonAncestorOfABinaryTree/TreeNode.java b/algorithms/java/src/lowestCommonAncestorOfABinaryTree/TreeNode.java similarity index 100% rename from algorithms-java/src/lowestCommonAncestorOfABinaryTree/TreeNode.java rename to algorithms/java/src/lowestCommonAncestorOfABinaryTree/TreeNode.java diff --git a/algorithms-java/src/lowestCommonAncestorOfABinaryTree/lowestCommonAncestorOfABinaryTree.java b/algorithms/java/src/lowestCommonAncestorOfABinaryTree/lowestCommonAncestorOfABinaryTree.java similarity index 100% rename from algorithms-java/src/lowestCommonAncestorOfABinaryTree/lowestCommonAncestorOfABinaryTree.java rename to algorithms/java/src/lowestCommonAncestorOfABinaryTree/lowestCommonAncestorOfABinaryTree.java diff --git a/algorithms-java/src/lowestCommonAncestorOfABinaryTree/lowestCommonAncestorOfABinaryTreeTest.java b/algorithms/java/src/lowestCommonAncestorOfABinaryTree/lowestCommonAncestorOfABinaryTreeTest.java similarity index 100% rename from algorithms-java/src/lowestCommonAncestorOfABinaryTree/lowestCommonAncestorOfABinaryTreeTest.java rename to algorithms/java/src/lowestCommonAncestorOfABinaryTree/lowestCommonAncestorOfABinaryTreeTest.java diff --git a/algorithms-java/src/maximumDepthOfBinaryTree/TreeNode.java b/algorithms/java/src/maximumDepthOfBinaryTree/TreeNode.java similarity index 100% rename from algorithms-java/src/maximumDepthOfBinaryTree/TreeNode.java rename to algorithms/java/src/maximumDepthOfBinaryTree/TreeNode.java diff --git a/algorithms-java/src/maximumDepthOfBinaryTree/maximumDepthOfBinaryTree.java b/algorithms/java/src/maximumDepthOfBinaryTree/maximumDepthOfBinaryTree.java similarity index 100% rename from algorithms-java/src/maximumDepthOfBinaryTree/maximumDepthOfBinaryTree.java rename to algorithms/java/src/maximumDepthOfBinaryTree/maximumDepthOfBinaryTree.java diff --git a/algorithms-java/src/maximumDepthOfBinaryTree/maximumDepthOfBinaryTreeTest.java b/algorithms/java/src/maximumDepthOfBinaryTree/maximumDepthOfBinaryTreeTest.java similarity index 100% rename from algorithms-java/src/maximumDepthOfBinaryTree/maximumDepthOfBinaryTreeTest.java rename to algorithms/java/src/maximumDepthOfBinaryTree/maximumDepthOfBinaryTreeTest.java diff --git a/algorithms-java/src/search2DMatrix/search2DMatrix.java b/algorithms/java/src/search2DMatrix/search2DMatrix.java similarity index 100% rename from algorithms-java/src/search2DMatrix/search2DMatrix.java rename to algorithms/java/src/search2DMatrix/search2DMatrix.java diff --git a/algorithms-java/src/search2DMatrix/search2DMatrixTest.java b/algorithms/java/src/search2DMatrix/search2DMatrixTest.java similarity index 100% rename from algorithms-java/src/search2DMatrix/search2DMatrixTest.java rename to algorithms/java/src/search2DMatrix/search2DMatrixTest.java diff --git a/algorithms-java/src/searchForRange/searchForRange.java b/algorithms/java/src/searchForRange/searchForRange.java similarity index 100% rename from algorithms-java/src/searchForRange/searchForRange.java rename to algorithms/java/src/searchForRange/searchForRange.java diff --git a/algorithms-java/src/searchForRange/searchForRangeTest.java b/algorithms/java/src/searchForRange/searchForRangeTest.java similarity index 100% rename from algorithms-java/src/searchForRange/searchForRangeTest.java rename to algorithms/java/src/searchForRange/searchForRangeTest.java diff --git a/algorithms-java/src/searchInABigSortedArray/searchInABigSortedArray.java b/algorithms/java/src/searchInABigSortedArray/searchInABigSortedArray.java similarity index 100% rename from algorithms-java/src/searchInABigSortedArray/searchInABigSortedArray.java rename to algorithms/java/src/searchInABigSortedArray/searchInABigSortedArray.java diff --git a/algorithms-java/src/searchInABigSortedArray/searchInABigSortedArrayTest.java b/algorithms/java/src/searchInABigSortedArray/searchInABigSortedArrayTest.java similarity index 100% rename from algorithms-java/src/searchInABigSortedArray/searchInABigSortedArrayTest.java rename to algorithms/java/src/searchInABigSortedArray/searchInABigSortedArrayTest.java diff --git a/algorithms-java/src/searchInRotatedSortedArray/searchInRotatedSortedArray.java b/algorithms/java/src/searchInRotatedSortedArray/searchInRotatedSortedArray.java similarity index 100% rename from algorithms-java/src/searchInRotatedSortedArray/searchInRotatedSortedArray.java rename to algorithms/java/src/searchInRotatedSortedArray/searchInRotatedSortedArray.java diff --git a/algorithms-java/src/searchInRotatedSortedArray/searchInRotatedSortedArrayTest.java b/algorithms/java/src/searchInRotatedSortedArray/searchInRotatedSortedArrayTest.java similarity index 100% rename from algorithms-java/src/searchInRotatedSortedArray/searchInRotatedSortedArrayTest.java rename to algorithms/java/src/searchInRotatedSortedArray/searchInRotatedSortedArrayTest.java diff --git a/algorithms-java/src/searchInsertPosition/searchInsertPosition.java b/algorithms/java/src/searchInsertPosition/searchInsertPosition.java similarity index 100% rename from algorithms-java/src/searchInsertPosition/searchInsertPosition.java rename to algorithms/java/src/searchInsertPosition/searchInsertPosition.java diff --git a/algorithms-java/src/searchInsertPosition/searchInsertPositionTest.java b/algorithms/java/src/searchInsertPosition/searchInsertPositionTest.java similarity index 100% rename from algorithms-java/src/searchInsertPosition/searchInsertPositionTest.java rename to algorithms/java/src/searchInsertPosition/searchInsertPositionTest.java diff --git a/algorithms-java/src/searchRangeInBinarySearchTree/TreeNode.java b/algorithms/java/src/searchRangeInBinarySearchTree/TreeNode.java similarity index 100% rename from algorithms-java/src/searchRangeInBinarySearchTree/TreeNode.java rename to algorithms/java/src/searchRangeInBinarySearchTree/TreeNode.java diff --git a/algorithms-java/src/searchRangeInBinarySearchTree/searchRangeInBinarySearchTree.java b/algorithms/java/src/searchRangeInBinarySearchTree/searchRangeInBinarySearchTree.java similarity index 100% rename from algorithms-java/src/searchRangeInBinarySearchTree/searchRangeInBinarySearchTree.java rename to algorithms/java/src/searchRangeInBinarySearchTree/searchRangeInBinarySearchTree.java diff --git a/algorithms-java/src/searchRangeInBinarySearchTree/searchRangeInBinarySearchTreeTest.java b/algorithms/java/src/searchRangeInBinarySearchTree/searchRangeInBinarySearchTreeTest.java similarity index 100% rename from algorithms-java/src/searchRangeInBinarySearchTree/searchRangeInBinarySearchTreeTest.java rename to algorithms/java/src/searchRangeInBinarySearchTree/searchRangeInBinarySearchTreeTest.java diff --git a/algorithms-java/src/strStr/strStr.java b/algorithms/java/src/strStr/strStr.java similarity index 100% rename from algorithms-java/src/strStr/strStr.java rename to algorithms/java/src/strStr/strStr.java diff --git a/algorithms-java/src/strStr/strStrTest.java b/algorithms/java/src/strStr/strStrTest.java similarity index 100% rename from algorithms-java/src/strStr/strStrTest.java rename to algorithms/java/src/strStr/strStrTest.java diff --git a/algorithms-java/src/subsets/subsets.java b/algorithms/java/src/subsets/subsets.java similarity index 100% rename from algorithms-java/src/subsets/subsets.java rename to algorithms/java/src/subsets/subsets.java diff --git a/algorithms-java/src/subsets/subsetsII.java b/algorithms/java/src/subsets/subsetsII.java similarity index 100% rename from algorithms-java/src/subsets/subsetsII.java rename to algorithms/java/src/subsets/subsetsII.java diff --git a/algorithms-java/src/subsets/subsetsIITest.java b/algorithms/java/src/subsets/subsetsIITest.java similarity index 100% rename from algorithms-java/src/subsets/subsetsIITest.java rename to algorithms/java/src/subsets/subsetsIITest.java diff --git a/algorithms-java/src/subsets/subsetsTest.java b/algorithms/java/src/subsets/subsetsTest.java similarity index 100% rename from algorithms-java/src/subsets/subsetsTest.java rename to algorithms/java/src/subsets/subsetsTest.java diff --git a/algorithms-java/src/validateBinarySearchTree/TreeNode.java b/algorithms/java/src/validateBinarySearchTree/TreeNode.java similarity index 100% rename from algorithms-java/src/validateBinarySearchTree/TreeNode.java rename to algorithms/java/src/validateBinarySearchTree/TreeNode.java diff --git a/algorithms-java/src/validateBinarySearchTree/validateBinarySearchTree.java b/algorithms/java/src/validateBinarySearchTree/validateBinarySearchTree.java similarity index 100% rename from algorithms-java/src/validateBinarySearchTree/validateBinarySearchTree.java rename to algorithms/java/src/validateBinarySearchTree/validateBinarySearchTree.java diff --git a/algorithms-java/src/validateBinarySearchTree/validateBinarySearchTreeTest.java b/algorithms/java/src/validateBinarySearchTree/validateBinarySearchTreeTest.java similarity index 100% rename from algorithms-java/src/validateBinarySearchTree/validateBinarySearchTreeTest.java rename to algorithms/java/src/validateBinarySearchTree/validateBinarySearchTreeTest.java