Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Demystifying Linked Lists: A Practical Approach
Rating: 5.0 out of 5(1 rating)
1,343 students

Demystifying Linked Lists: A Practical Approach

Finally understand linked lists without the academic jargon. Learn how they work and how to code them—in Swift
Created byNorbert Grover
Last updated 8/2025
English

What you'll learn

  • Understand the structure and behavior of singly linked lists and how they differ from arrays in memory management and traversal.
  • Create linked list nodes using Swift generics, allowing for reusable, type-safe data structures.
  • Implement common linked list operations including insertion, deletion, and traversal from scratch.
  • Reverse a singly linked list in-place, using pointer manipulation and without additional data structures.
  • Detect and handle cycles in a linked list using Floyd’s Cycle Detection Algorithm (Tortoise and Hare approach).
  • Find the middle node of a linked list efficiently with fast and slow pointers.
  • Remove the nth node from the end of a linked list using a one-pass two-pointer technique.
  • Check whether a linked list is a palindrome by reversing and comparing segments of the list.
  • Merge two sorted linked lists in linear time without creating new nodes.
  • Apply Swift’s reference type behavior to safely and effectively manipulate linked list nodes and avoid common pointer errors.

Course content

4 sections24 lectures2h 22m total length
  • What is a Linked List and why is it important?2:25

    I explain in simple terms, what a Linked List is and why you would want to use one.

  • Mastering Linked Lists in Swift: Build a Strong Foundation in Data Structures1:12

    In Mastering Linked Lists in Swift, you’ll learn how to implement and manipulate singly linked lists using Swift, gaining hands-on experience with memory management, references, and pointer logic. Whether you’re preparing for technical interviews, building your own data structures, or simply looking to sharpen your algorithmic thinking, this course will give you the tools and confidence to tackle real-world coding problems.

  • Why use a Singly Linked-List1:09
  • What is 0(n) and 0(1)1:02
  • How to create LinkNodes for a Linked List8:20

    The very basic fundamentals of Linked Lists are demonstrated here.

  • How to modify a Linked List. Inserting and Deleting20:34

    Learn how to build and manipulate a singly linked list in Swift! This video covers creating nodes, printing the list, inserting at the beginning or after a node, and deleting nodes by position or value. Perfect for beginners and those prepping for interviews.

  • Understanding Pointers before Accomplishing a Linked List Reversal1:21

    Reversing a singly linked list in Swift requires a solid understanding of pointers (or references). Since each node points to the next, reversing the list involves carefully reassigning these references to point backward. You're not creating new nodes—you're modifying existing ones by changing their connections in memory. Without grasping how references work, it's easy to break the list or lose access to parts of it.

  • What are Pointers and what do they do?1:06

    In Swift, pointers are abstracted as references to class instances. While Swift hides raw memory addresses, understanding how references work is crucial—especially when working with data structures like linked lists. Since classes are reference types, variables point to the same object in memory. When you modify links between nodes, you're updating these references, not copying values. Grasping this pointer-like behavior is key to safely manipulating linked lists and similar structures.

  • How to do a Linked List Reversal0:40

    Learn how to reverse a singly linked list in Swift using a simple pointer-based approach. This method uses two pointers to iteratively reverse the links between nodes, modifying the list in-place without extra memory. You'll walk through the logic, see a clean Swift implementation, and understand the time and space complexity—O(n) time and O(1)space. Perfect for mastering core data structure manipulation.

  • Coding the Linked List Reversal15:52

    In this video, we’ll walk through how to reverse a singly linked list in Swift—step by step. You’ll learn how to use pointers to rewire the node connections, all in-place and without creating new nodes. Ideal for beginners and anyone prepping for coding interviews, this tutorial covers both the logic and the Swift code needed to master linked list reversal.

Requirements

  • Basic familiarity with the Swift programming language, including variable declarations and data types.
  • Understanding of Swift control flow, such as if, while, and for statements.
  • Knowledge of functions in Swift, including how to define and call them.
  • Understanding of classes and objects, especially how reference types behave in Swift.
  • Experience working with optional values and optional chaining in Swift.
  • Basic understanding of generics (e.g., ListNode<T>), or willingness to learn them early in the course.
  • Comfort using Xcode or Swift Playgrounds for writing and testing Swift code.
  • Ability to read and trace simple Swift programs, especially those involving loops and conditionals.
  • Willingness to learn about memory references and pointers, as they relate to linked list behavior.
  • A macOS environment with Xcode installed, or access to an alternative Swift compiler for practice.

Description

Tired of Linked List tutorials that talk at you instead of to you?

Most courses on data structures are designed by incredibly smart, highly academic instructors—who unfortunately seem more interested in proving how much they know than helping you actually learn. They talk over your head, breeze past the hard parts, and leave you wondering if you're the problem. You're not.

This course is different.

This is a course built for developers who want clarity, not confusion.

I’ve been where you are. I’ve watched those same videos that make linked lists sound way more complicated than they need to be. That’s why this course was created—for real people who want to really understand how linked lists work, in a way that makes sense.

We’ll go step-by-step, building each concept from scratch, writing Swift code you’ll actually use. You’ll learn how to:

  • Create and traverse a linked list

  • Insert, delete, and reverse nodes

  • Use pointer logic without needing a degree in computer science

  • Solve interview-style problems using practical Swift solutions

By the end, you'll not only understand linked lists—you’ll be confident building them.

This course is for learners, not show-offs. If you’ve ever felt left behind by other tutorials, give this one a try. You deserve to learn in a space where your growth matters more than someone else’s credentials.

Who this course is for:

  • Beginner to intermediate Swift developers looking to strengthen their understanding of data structures.
  • iOS developers preparing for technical interviews that include algorithm and data structure questions.
  • Computer science students who want to practice linked list problems using Swift rather than lower-level languages.
  • Self-taught programmers building a solid foundation in how data is stored and managed in memory.
  • Developers transitioning from other languages to Swift who want to deepen their understanding of reference types and pointer-like behavior.
  • Anyone studying for coding interviews at companies that test core algorithmic skills.
  • Swift learners building their first portfolio of algorithms, such as reversals, merges, and search techniques.
  • Educators and tutors seeking a clear and practical example of teaching data structures with a modern language.
  • iOS bootcamp participants who need a deeper dive into algorithmic problem solving outside of UIKit or SwiftUI.
  • Developers interested in writing more efficient Swift code, particularly by understanding the memory and performance implications of list-based structures.