https://medium.com/@abhishekkhaiwale007/data-structures-and-algorithms-a-practical-guide-for-beginners-096bd80c2e41