# Data Structures and Algorithms in Python (Vincent Russo)

Doubly Linked Lists - Add Node Before/After In this lesson, you will learn how to add a node before or after a specified node. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/gx4GA0ZZzN9). Binary Search - Binary Search In this lesson, you will learn about the Binary Search algorithm and its implementation in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/N8RQzm6AXyN). Binary Search - Python's Bisect Method In this lesson, you will learn about the bisect module in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/B16AD2GnPyN). Binary Search - Solution Review: Integer Square Root This lesson contains the solution review for the challenge to find the largest integer whose square is less than or equal to the given integer. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/JQnLorMpMz2). Binary Search - Exercise: Cyclically Shifted Array Challenge yourself with an exercise in which you'll have to return the index of the smallest number in a cyclically shifted array. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/gk0z8ZEwzY3). Doubly Linked Lists - Exercise: Remove Duplicates Challenge yourself with an exercise in which you'll have to remove duplicates from a doubly linked list. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/JPPJNGQYXyo). Introduction - What is this course about? This lesson contains information about the course. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/3j9gY3rxXXn). String Processing - Exercise: Is Unique Challenge yourself with an exercise in which you'll have to determine whether a string is unique or not. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/39xgp9A6ro9). Stack - Determine if Brackets are Balanced This lesson will teach us how to determine whether or not a string has balanced usage of brackets by using a stack. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/g7Zp75M7LNk). Circular Linked Lists - Quiz It's quiz time! Test yourself by solving these questions about circular linked lists. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/xlwL4mvw6jE). Arrays - Array Advance Game In this lesson, you will learn how to solve the problem of the Array Advance Game in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/qZO32VLk0xr). Stack - Stack This lesson will introduce you to the stack data structure and its implementation in Python which we'll use in the problems throughout this chapter. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/YMBEM0VZN2p). Stack - Exercise: Convert Decimal Integer to Binary Challenge yourself to solve the problem in this lesson! View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/gx8M20yjj8Z). Binary Search Trees - Solution Review: Checking the BST property This lesson contains the solution review for Checking the BST property challenge. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/N8mwBmvp448). Stack - Solution Review: Convert Decimal Integer to Binary This lesson contains the solution review for the challenge of converting integer values to their binary equivalents. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/JPlZPq1JKxl). Doubly Linked Lists - Delete Node In this lesson, you will learn how to remove a node from a doubly linked list. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/JQgm65PqpJD). Binary Search - Quiz It's quiz time! Test yourself by solving these questions about binary search. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/q2LpXg67r7p). Stack - Reverse String This lesson teaches us how to reverse a string using a stack in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/gkgwQvGVBY3). Singly Linked Lists - Node Swap This lesson will teach you how to swap two nodes in a linked list. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/qAQyv8jzJv7). Singly Linked Lists - Exercise: Move Tail to Head Challenge yourself with an exercise in which you'll move the tail node to the head node in a linked list. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/JQxnZVZ0N8y). Singly Linked Lists - Reverse In this lesson, you will learn how to reverse a linked list in both an iterative and recursive manner. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/7X4AY7MVXwG). Singly Linked Lists - Merge Two Sorted Linked Lists In this lesson, we will learn how to merge two sorted linked lists. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/JP0PLjpXxyo). Singly Linked Lists - Remove Duplicates In this lesson, we will learn how to remove duplicates from a linked list. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/g7nEp50EkBk). Singly Linked Lists - Nth-to-Last Node In this lesson, we will learn how to get the Nth-to-Last Node from a given linked list. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/mE23Jj5pp93). Singly Linked Lists - Count Occurrences In this lesson, we will learn how to count occurrences of a data element in a linked list. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/YV593393XDW). Circular Linked Lists - Split Linked List into Two Halves In this lesson, you will learn how to split a circular linked list into two halves in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/gxX3GDx6EYD). Circular Linked Lists - Josephus Problem In this lesson, we will learn how to solve the Josephus Problem using a circular linked list in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/q2z5yWD7GKy). Stack - Quiz It's quiz time! Test yourself by solving these questions about stacks. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/YMp0JXn512Y). Singly Linked Lists - Introduction This lesson introduces you to the singly linked list and implements its structure in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/qAlJqORgZLG). Singly Linked Lists - Deletion by Position In this lesson, you will learn how to delete a node at a given position in a linked list. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/7n6YqEJl5mO). Doubly Linked Lists - Append and Prepend In this lesson, you will learn how to implement doubly linked lists and insert elements in it using Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/R86Z1WpO60Y). Singly Linked Lists - Rotate In this lesson, we will learn how to rotate a linked list. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/YQAxEO9QXNM). Singly Linked Lists - Solution Review: Move Tail to Head This lesson contains the solution review for the challenge of moving the tail node of a linked list to the head. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/myjZmMM5JzA). Singly Linked Lists - Exercise: Sum Two Linked Lists Challenge yourself with the following exercise in which you'll sum up two linked lists! View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/qVLzrjw0xjk). Singly Linked Lists - Quiz It's quiz time! Test yourself by solving these questions about singly linked lists. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/7AM9oP19NMQ). Doubly Linked Lists - Reverse In this lesson, you will learn how to reverse a doubly linked list. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/g2r92zOWm3D). Doubly Linked Lists - Solution Review: Remove Duplicates This lesson contains the solution review for the challenge of removing duplicates from a doubly linked list. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/39AnNJ65OBn). Doubly Linked Lists - Exercise: Pairs with Sums Challenge yourself with an exercise in which you'll have to find pairs from a doubly linked list which sum to some number. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/YM84B1jxvWK). Doubly Linked Lists - Solution Review: Pairs with Sums This lesson contains the solution review for the challenge of finding pairs in a doubly linked list which sum up to the given number. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/m74mqjrVPA0). Doubly Linked Lists - Quiz It's quiz time! Test yourself by solving these questions about doubly linked lists. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/RLmLM87zQnV). Arrays - Arbitrary Precision Increment In this lesson, you will learn how to solve the problem of the Arbitrary Precision Increment using arrays. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/qAxkGJ0lxmG). Binary Search Trees - Quiz It's quiz time! Test yourself by solving these questions about binary search trees. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/mEAL8z43wg9). Arrays - Two Sum Problem In this lesson, you will learn how to solve the Two Sum Problem using three solutions in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/JYpB2qkNrDo). Arrays - Optimal Task Assignment In this lesson, you will learn how to assign tasks optimally to a set of workers in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/RMvQvyj7L8L). String Processing - Is Palindrome Permutation In this lesson, you will learn how to find if a string is a palindrome permutation or not. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/my9LzDqR7Vp). Arrays - Intersection of Two Sorted Arrays In this lesson, you will learn how to find the intersection of two sorted arrays in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/7AE5gRw3XQG). Arrays - Exercise: Buy and Sell Stock Challenge yourself with an exercise in which you'll have to find the maximum profit generated by buying and selling stocks! View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/R8mW68xQgYz). Singly Linked Lists - Is Palindrome In this lesson, we'll learn how to determine whether a singly linked list is a palindrome or not. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/JYnWp0xm9KD). Circular Linked Lists - Introduction and Insertion In this lesson, you will be introduced to circular linked lists and you will learn how to insert elements into a circular linked list. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/myj1v3GzBNE). Circular Linked Lists - Remove Node In this lesson, you will learn how to remove a node from a circular linked list using Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/7n5W5m4Kw9Q). Circular Linked Lists - Exercise: Is Circular Linked List Challenge yourself with an exercise in which you'll have to determine whether a given linked list is circular or not. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/g7xB4Eq6omj). Binary Trees - Introduction In this lesson, you will be introduced to Binary Trees and their implementation in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/mEmPJBmWqWr). String Processing - Spreadsheet Encoding In this lesson, you will learn how to convert the column IDs in a spreadsheet into an integer in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/7AKw9o3Ykgw). Binary Trees - Traversal Algorithms In this lesson, you will learn how to traverse binary trees using a depth-first search. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/R1GK62rZzx0). Binary Trees - Level-Order Traversal In this lesson, you will learn how to implement level-order traversal of a binary tree in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/YVNZj9JoV3A). Binary Trees - Reverse Level-Order Traversal In this lesson, you will learn how to implement reverse level-order traversal of a binary tree in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/YMO5yLBXB30). Binary Trees - Calculating the Height of a Binary Tree In this lesson, you will learn how to calculate the height of a binary tree. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/RLxN4wr2noq). Singly Linked Lists - Length In this lesson, you will learn how to calculate the length of a linked list. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/3j51n07LQZM). Binary Search - Find First Entry in List with Duplicates In this lesson, you will learn how to find the first entry in a list with duplicates using a binary search in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/3wDJ9lAZyrA). Binary Search - Find Fixed Number In this lesson, you will learn how to find a fixed number in a list using a binary search in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/gxOvOAkErJG). Binary Search - Find Bitonic Peak In this lesson, you will learn how to find the bitonic peak using a binary search in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/gxGAVkMELm6). Binary Search - Find the Closest Number In this lesson, you will learn how to find the closest number to a target number in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/gx3O0X84Onk). Binary Trees - Exercise: Calculating the Size of a Tree Challenge yourself with an exercise in which you'll have to calculate the size of a binary tree! View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/7DBoKmGAMRr). Binary Trees - Quiz It's quiz time! Test yourself by solving these questions about binary trees. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/gkJ3LK4D693). Binary Search - Exercise: Integer Square Root Challenge yourself with an exercise in which you'll have to return the largest integer whose square is less than or equal to the given integer. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/g7N7jE5GNqr). Binary Search - Solution Review: Cyclically Shifted Array This lesson contains the solution review for the challenge to find the index of the smallest number in a cyclically shifted array. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/R8x6Xy5gY0K). Recursion - Find Uppercase Letter in String In this lesson, you will learn how to find the uppercase letter in a string using both an iterative and recursive approach in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/xV3MWlXklAE). Binary Search Trees - Introduction - Insertion and Search In this lesson, you will learn how to implement Binary Search Trees in Python and how to insert and search elements within them. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/g7OWWX38jM9). Binary Search Trees - Exercise: Checking the BST property Challenge yourself with an exercise in which you'll have to check the BST property for a Binary Search Tree! View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/R8rqLB9YD7O). Recursion - Count Consonants in String In this lesson, you will learn how to count consonants of a string using both an iterative and recursive approach in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/gxgvLk54wWl). Recursion - Calculate String Length In this lesson, you will learn how to calculate the length of a string using both an iterative and recursive approach in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/N8kZ7Xkx2XL). Binary Trees - Solution Review: Calculating the Size of a Tree This lesson contains the solution review for the challenge of calculating the size of a binary tree. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/qVNg5okDRor). String Processing - Is Palindrome In this lesson, you will learn how to determine if a string is a palindrome or not. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/qAm1BE9XG67). String Processing - Exercise: String to Integer Challenge yourself with an exercise in which you'll have to covert a string into an integer. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/RMkgmxz2wGO). String Processing - Check Permutation In this lesson, you will learn how to check if a string is a permutation of another string in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/qZ1A0MRmoo7). Recursion - Solution Review: Product of Two Positive Integers This lesson contains the solution review for the challenge to find the product of two numbers. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/YVPn8RYQ8jA). String Processing - Look-and-Say Sequence In this lesson, you will learn how to generate the next term of the Look-and-Say sequence in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/N7mqqVM7V9p). String Processing - Is Anagram In this lesson, you will learn how to determine if a string is an anagram of another string or not. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/JYBxY26PrXl). String Processing - Solution Review: Is Unique This lesson contains the solution review to determine whether a string contains all unique characters or not. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/R1J37mBBPgL). String Processing - Solution Review: String to Integer This lesson contains the solution review to convert a string into an integer in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/g2R5kz5oxGY). String Processing - Integer to String In this lesson, you will learn how to convert an integer to a string in Python. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/qZ1L37QR0P2). Arrays - Solution Review: Buy and Sell Stock This lesson contains the solution review for the challenge of finding the maximum profit generated by buying and selling stocks! View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/Bn9lJ013Qrk). Recursion - Quiz It's quiz time! Test yourself by solving these questions about recursion. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/YMB8llRopYp). Recursion - Exercise: Product of Two Positive Integers Challenge yourself with an exercise in which you'll have to find the product of two positive integers. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/g20ZWJRKjOj). Singly Linked Lists - Solution Review: Sum Two Linked Lists This lesson contains the solution review for the challenge of summing two linked lists. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/3Y2M15WWgmQ). Singly Linked Lists - Insertion In this lesson, we'll learn how to insert elements in a linked list at different places. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/NE0ED7mJp4N). Singly Linked Lists - Deletion by Value In this lesson, we will learn how to delete a node based on a value from a linked list. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/YMLWlW2E78A). Circular Linked Lists - Solution Review: Is Circular Linked List This lesson contains the solution review for the challenge of determining whether a given linked list is circular or not. View the lesson [here](https://www.educative.io/courses/ds-and-algorithms-in-python/B17Rky3ByqJ).