Rotate List - Linked List - Leetcode 61 - Python

Sdílet
Vložit
  • čas přidán 23. 07. 2024
  • 🚀 neetcode.io/ - A better way to prepare for Coding Interviews
    🐦 Twitter: / neetcode1
    🥷 Discord: / discord
    🐮 Support the channel: / neetcode
    Coding Solutions: • Coding Interview Solut...
    Dynamic Programming Playlist: • House Robber - Leetco...
    Tree Playlist: • Invert Binary Tree - D...
    Linked List Playlist: • Reverse Linked List - ...
    Problem Link: leetcode.com/problems/rotate-...
    0:00 - Read the problem
    1:40 - Drawing Explanation
    6:32 - Coding Explanation
    leetcode 61
    This question was identified as an interview question from here: github.com/xizhengszhang/Leet...
    #rotate #list #python
  • Věda a technologie

Komentáře • 48

  • @CST1992
    @CST1992 Před 3 měsíci +8

    6:49 "k modded -"
    Rude interruption there

  • @floatingfortress721
    @floatingfortress721 Před 6 měsíci +2

    Clear explanation with clean code :)
    Step 1: Compute length of list, storing a reference to tail node
    Step 2: Find pivot node, which becomes new tail node
    Step 3: Rotate list by reconnecting both parts

  • @JameS00989
    @JameS00989 Před rokem +10

    Best channel on Internet for DS and Algo 🎉 Thanks NeetCode ❤

  • @MrACrazyHobo
    @MrACrazyHobo Před 2 lety +3

    I love you man, thanks for getting me a job!

  • @ComputerScienceSimplified

    Great video, keep up the incredible work! :)

  • @digestable_bits
    @digestable_bits Před 2 lety

    very clear explanation, thanks as usual :)

  • @meghanapg7194
    @meghanapg7194 Před rokem

    Best teacher ever! Thank you :)

  • @fazliddinfayziev-qg1vg
    @fazliddinfayziev-qg1vg Před 4 měsíci

    I always watch your videos, when I cannot solve algorithms by myself. You are good at explaining. Thank you bro.

  • @theysay6696
    @theysay6696 Před 2 lety

    Great drawing! Thanks!

  • @louiswoolley987
    @louiswoolley987 Před 3 lety +5

    great explanation! could you make a video on leetcode 105 Construct Binary Tree from Preorder and Inorder Traversal ?

  • @rohitkumarsinha876
    @rohitkumarsinha876 Před 3 lety

    great explanation bro and thanks alot

  • @user-jn5se1kb2q
    @user-jn5se1kb2q Před 4 měsíci

    hello guys sorry i'm a beginner, when we assign the cur = head is it create a copy of the linked list or referencing the same linked list?

  • @salomeoumarouwate2024

    NeetCode is GREAT!!!

  • @licokr
    @licokr Před 4 měsíci

    When I solve coding problems and use itereation, somehow, I think of iteration of all elements I think it's because many problems need to iterate. I think this is really important to break what I have known and think about the solution fit the best to the problem I currently encounter. My first approach was making a list then iterate them. Time: O(n) Space: O(n). After your explanation, I only replaced with two points. and I thought, okay it looks nice. Then I saw your solution. It iterates one more though, you don't use any space I mean O(1). Hoo, great. I really learned a lot from your videos. Your eyes to see problems is absolutely stand out

  • @ronpb3943
    @ronpb3943 Před 2 lety +4

    I wrote a recursive solution, it went good until the cases where the k number was huge appeared

  • @MrLeyt1125
    @MrLeyt1125 Před 4 měsíci +1

    Hey why dont you use 2-pointers method from Leetcode 19?

  • @shrimpo6416
    @shrimpo6416 Před 2 lety

    clean & neet

  • @sabyasachisahoo8975
    @sabyasachisahoo8975 Před 2 lety +1

    I love your way of explaining .

    • @triscuit5103
      @triscuit5103 Před 2 lety

      I knoooow, right? Nobody else can do it like he does, I absolutely love the way he explains things

  • @edwardteach2
    @edwardteach2 Před 2 měsíci

    U a God

  • @Ishaana3290
    @Ishaana3290 Před 11 měsíci +1

    Why we are doing k=k% length

  • @archanayogi7856
    @archanayogi7856 Před 2 lety

    i didnt understand the tail.next last line part after nhead become 45 how tail = head(12345) it should be added to the nhead , i am beginner pls help me

    • @dpsingh_287
      @dpsingh_287 Před rokem

      we already broke the connection between 123 and 45 when we set cur.next=None after exiting the loop therefore, head would now be (1->2->3). Now we essentially put this head at the end of the tail (which is 4->5). This gives us the desired rotated list which is 4->5->1->2->3

  • @Ishaana3290
    @Ishaana3290 Před 11 měsíci

    And what exactly happening in for loop
    New head = cur.next ie 4
    Cur.next = none means 3 -> none
    What is the value of tail.next ??

  • @juheehong7445
    @juheehong7445 Před 2 lety +2

    would a fast/slow pointer to get to our desired point work here? how exactly would we implement that, though?

    • @prateeksharma2354
      @prateeksharma2354 Před 2 lety

      ya even i thought the same

    • @anchitbhushan6172
      @anchitbhushan6172 Před 2 lety

      I think that would work too, but in worst case for reaching at k-1 th node will have O(n) complexity, but in case of for loop implemented here the worst case is O(k)

    • @Prince-gt5ju
      @Prince-gt5ju Před 2 lety

      even i thought same but if k is larger than len of linked list then it wont work

    • @derrickagyemangduah2353
      @derrickagyemangduah2353 Před rokem

      @@Prince-gt5ju just find the k mod len

  • @vijayakumareyunni6010

    Good explanation. But, some time can be saved by limiting the explanation of the problem.

  • @rudranshsharma2074
    @rudranshsharma2074 Před 2 lety +1

    k = k % len(linked_list).....right?

  • @maamounhajnajeeb209
    @maamounhajnajeeb209 Před rokem +2

    I am the one who like this video for the 500 time

    • @shaantalk
      @shaantalk Před 4 měsíci +1

      you should like it off number if times 😂..otherwise the like would go away

  • @ngneerin
    @ngneerin Před 9 měsíci

    In short: 2 pointer

  • @jimwang8
    @jimwang8 Před 2 lety

    two passes

  • @ary_21
    @ary_21 Před rokem

    why cant we use reversals algorithm on this question?

  • @davidmbugua6994
    @davidmbugua6994 Před 2 lety +1

    you can also the method of converting in into a list, then using the rotate list method!

  • @halahmilksheikh
    @halahmilksheikh Před 2 lety +3

    I don't understand, isn't the k = k%len part just an optimization? Without it, it should just be slow but should still work. But if you comment it out, there are test cases that fail. Why is that?
    Edit: Oh I get it now. The formula for finding the break is length - k - 1. It's possible to have a huge K which sets it to negative, so you need the % to keep k smaller than length.

    • @qazaqempire2446
      @qazaqempire2446 Před rokem

      if k > total len of linked list, then we will do more rotations than usual but the result will be same. so we only need to do actual remainder of k shifts, which is k % len

  • @saran703
    @saran703 Před 3 lety +2

    can you please make a tutorial about python data struture !! That would me more helpful

  • @davidlee588
    @davidlee588 Před 2 lety

    the skip length is 5 - 2 = 3; while we need i < 3 - 1, which means i starts from 0, and 1, it only moves one step, not two steps, that's why i DON'T understand the length - k - 1part; Could anyone explain more?

  • @colonelondghoskots7759

    I THINK THE code is not working

  • @ximengzhao2168
    @ximengzhao2168 Před 2 lety +1

    Great video, line 26: cur.next = tail.next works as well :)

    • @Ikhideifidon
      @Ikhideifidon Před 2 lety

      It does but for simplicity, None is preferred.