Reverse Linked List II - Leetcode 92 - Python

  Рет қаралды 85,733

NeetCode

NeetCode

Күн бұрын

Пікірлер: 79
@NeetCode
@NeetCode 3 жыл бұрын
💡 LINKED LIST PLAYLIST: kzbin.info/www/bejne/fWHCemCQe5WGaZo
@masternobody1896
@masternobody1896 3 жыл бұрын
thanks
@洪豐雄
@洪豐雄 3 жыл бұрын
Thanks for your explanation, it helps me a lot !!!
@jakubucinski
@jakubucinski 2 ай бұрын
Hey, for visual problems like this would you consider Leetdebug - kzbin.info/www/bejne/oom6mIN5jqmZg8U as being something worth integrating in NeetCode ? I have gotten some good feedback on this project from people - but integrating it in NeetCode would be a dream come true as it could potentially help the community quite a lot. What do you think ?
@shelllu6888
@shelllu6888 Жыл бұрын
For those who find this problem chanllenging, you are not alone. This is still by far the best explanation for this problem. Highly encourage you to hang in there, pause the video multiple times, understand it, take a break and come back to it. It will eventually make sense, as long as you don't give up and show up to understand it.
@memesbyanony
@memesbyanony 10 ай бұрын
bro i m confused : if in case left is at 1st index then dummy.next points to head i.e. first node but answer would be right if leftprev.next is returning
@chrischika7026
@chrischika7026 4 ай бұрын
came back after sometime and I understand it fully.
@saishivamgupta4584
@saishivamgupta4584 3 ай бұрын
@@memesbyanony it's literally explained at 05:23
@John-ds4ce
@John-ds4ce Ай бұрын
i thought of the same idea but wasnt able to write a code properly as i got really confused, the solutions i tried to read on leetcode confused me even more
@mashab9129
@mashab9129 3 жыл бұрын
coding it piece by piece after each illustrated/explained block was a great idea. thank you!
@AmrElmohtaseb
@AmrElmohtaseb 9 ай бұрын
It brings me an immense relief whenever I'm facing an issue understanding a LeetCode problem and I find you have a video for it.
@prestonbourne
@prestonbourne Жыл бұрын
I like this style of explaining where you go back and forth between the drawing and the code. It helps me mentally map the concept directly to implementation
@iugaialeksei2108
@iugaialeksei2108 Жыл бұрын
Dude, I have nothing but admiration for how you approach various problems. Every time you do it clear, simple and smooth.
@MP-ny3ep
@MP-ny3ep Жыл бұрын
Breaking it into 3 parts helped a lot. Thank you
@MohSo14
@MohSo14 Күн бұрын
Great explanation as always. Wonderful skills to break down the problem and starting to solve it!
@shinewbiez
@shinewbiez 2 жыл бұрын
Coding while explaining was a great idea and more understandable, kindly follow the same pattern for further videos!
@abhishekkulkarni1702
@abhishekkulkarni1702 9 ай бұрын
I am simply amazed by the clear explanation! Just simply wow...Thank you so much
@dennisgray8199
@dennisgray8199 7 ай бұрын
Another way to think about the very first part of this algorithm is: "Until current.val is L, move the prev/curr pointers up". I found this to be a more intuitive way of thinking than the (left - 1) approach here (YMMV). Similarly, in the second phase of the algorithm, instead of thinking about indicies you can just think about it like this: "Reverse the list, once prev.val = R you, you know you're done reversing the sublist." I find the less I can think about indicies the more high-level I can think about the algorithm.
@pingpangqiu5605
@pingpangqiu5605 2 жыл бұрын
Very good illustration and idea. I feel I will never be able to solve this within a normal coding interview session by myself
@quirkyquester
@quirkyquester 2 жыл бұрын
great explanation! this problem seems easy, but it's really tricky
@jadkhalil9263
@jadkhalil9263 2 жыл бұрын
Great video only thing that got me was the edge cases. Very clever to use the dummy node, You could say it was some NeetCode.
@tsunghan_yu
@tsunghan_yu 2 жыл бұрын
More readable code: # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def reverseBetween(self, head: Optional[ListNode], left: int, right: int) -> Optional[ListNode]: dummy = ListNode() dummy.next = head prev, cur = dummy, head for _ in range(left - 1): prev = cur cur = cur.next left_prev, left_node = prev, cur prev, cur = None, left_node for _ in range(right - left + 1): tmp = cur.next cur.next = prev prev = cur cur = tmp right_node, right_next = prev, cur left_prev.next = right_node left_node.next = right_next return dummy.next
@AshwaniSharma-of2nq
@AshwaniSharma-of2nq 7 ай бұрын
Amazing explanation again, that trick of adding dummy node really helped.
@dabaaku
@dabaaku 6 ай бұрын
Your explanations on these problems helped me a lot! Thanks for all the hard work that went into making these videos.
@carloscarrillo201
@carloscarrillo201 2 жыл бұрын
You really deserve heaven, good man! Thanks so much for doing this. A donation is totally well deserved!
@maamounhajnajeeb209
@maamounhajnajeeb209 Жыл бұрын
you motivate me to solve problem everyday man
@NeetCode
@NeetCode Жыл бұрын
Keep up the good work 💪
@konradhunter1407
@konradhunter1407 5 ай бұрын
Great code, as usual! Commenting the code like this is also helpful.
@triscuit5103
@triscuit5103 2 жыл бұрын
ollie mollie man, this is such a great explanation, you've got such a talent to convey information. Congrats on the job, well deserved. I myself got interviews lined up pretty much with all of FAANG and your videos are my go-to source when I want to just sit and watch something rather than practice hands-on coding.
@leeroymlg4692
@leeroymlg4692 Жыл бұрын
did you get the job?
@triscuit5103
@triscuit5103 Жыл бұрын
@@leeroymlg4692 yeah I did
@nikakarumidze1578
@nikakarumidze1578 2 жыл бұрын
I had solution idea like that, but could not implement properly. So thanks very much for that.
@krishankantray
@krishankantray 7 ай бұрын
It looks easy but when it comes to write a compilable code in interview there are good changes of making mistake.
@sheikhmkrifat7749
@sheikhmkrifat7749 8 ай бұрын
Thanks for such clear explanations! Love from Bangladesh
@algosavage7057
@algosavage7057 2 жыл бұрын
you are awesome, dude. Thanks for such clear explanations!
@NeetCode
@NeetCode 2 жыл бұрын
Thanks, happy it's helpful!
@tanmayeekulkarni2737
@tanmayeekulkarni2737 Жыл бұрын
Thank you for the explanation! However, for 1 test case the given list is [1,2,3,4] 1,4 my output is [4,2,3,1], but the expected output is [4,3,2,1] Could you please tell me where I'm lacking? I'm using two pointer method in python
@aynuayex
@aynuayex 11 ай бұрын
really helpful man, you are motivating me to work on more problems everyday thanks a million. but can you come up with the Follow up: Could you do it in one pass?
@krishnapande8941
@krishnapande8941 Жыл бұрын
Best video explanation for it... thnx for the effort 😇
@shantipriya370
@shantipriya370 6 ай бұрын
wonderful explanation
@quanvu2579
@quanvu2579 29 күн бұрын
thanks for explaining!
@Cloud-577
@Cloud-577 2 жыл бұрын
thank you soo too much this I much cleaner and easy to understand and probably will never forget
@akash5653
@akash5653 Жыл бұрын
Linked List problems aren't hard but they're confusing af
@sinnohperson8813
@sinnohperson8813 5 ай бұрын
Easy to get lost
@baolingchen2891
@baolingchen2891 2 жыл бұрын
I use Java but this is very helpful! Thank you!
@anushab.v.8512
@anushab.v.8512 2 жыл бұрын
Here is my Java solution, it's failing for [5] 1 1 . How do you handle this case? public ListNode reverseBetween(ListNode head, int left, int right) { // 0. ass dummy node at start this helps in hadling edge cases // if left is head itself etc. ListNode dummy = new ListNode(0, head); // dummy.next = head; // 1. Iterate till you find leftNode, remeber prevLeft (iterate left-1) ListNode leftPrev = dummy; ListNode curr = head; while(curr!=null && curr.val
@__LAmar__
@__LAmar__ Жыл бұрын
​@@anushab.v.8512 Guess I'm really late, but why are you checking for value? Value of node has nothing to be with anything here. Maybe that's why you are failing the test case
@faaeizkhan6134
@faaeizkhan6134 2 ай бұрын
i used stack for this problem
@usamahussain4461
@usamahussain4461 2 ай бұрын
bro you're so smart!
@shamimsarker839
@shamimsarker839 Жыл бұрын
Those who can reverse a Linked List, they can easily solve this.
@ARkhan-xw8ud
@ARkhan-xw8ud 4 ай бұрын
Thanks for this bro
@begula_chan
@begula_chan 9 ай бұрын
Thanks bro very much!
@sushantgupta-lx2nv
@sushantgupta-lx2nv Жыл бұрын
Thank you so much sir
@saikaushiksoma5402
@saikaushiksoma5402 2 жыл бұрын
Awesome man!!! Thanks for this.....
@sushmitgaur8537
@sushmitgaur8537 10 ай бұрын
if r = 4 then shouldn't the element at 4th index be 5? 'cuz the index starts from 0?
@namanbansal8613
@namanbansal8613 7 ай бұрын
Given in the question that "l" refers to 2nd index, implying index reference as 1 being the first node.
@goodwish1543
@goodwish1543 3 жыл бұрын
Thanks for the clean illustration. ^_^
@varisharashid4699
@varisharashid4699 2 жыл бұрын
Great video!
@davisward3144
@davisward3144 3 жыл бұрын
Great video, thanks!
@amberfatima2777
@amberfatima2777 Жыл бұрын
best solution😌
@emmanuelolajide427
@emmanuelolajide427 2 жыл бұрын
Thanks man
@mohithadiyal6083
@mohithadiyal6083 3 жыл бұрын
Hey can you please do 'create BSt from levelorder array' problem.
@abhishekkrishna5978
@abhishekkrishna5978 8 ай бұрын
whatif i use a arraylist to swap
@SamarAshrafii
@SamarAshrafii 3 ай бұрын
Does anyone know how I can fix the below code, I would appreciate help. I tried to solve it based on the solution for reverse node in K group. dummy = ListNode(0, head) # Get nodes left_node, prevlef = self.getKth(left, dummy) right_node, _ = self.getKth(right, dummy) # Reverse the segment prev, curr = None, left_node while curr != right_node.next: tmp = curr.next curr.next = prev prev = curr curr = tmp # Connect the reversed segment back into the list prevlef.next = prev left_node.next = right_node.next return dummy.next def getKth(self, k, curr): prev = None while k > 0: prev = curr curr = curr.next k -= 1 return curr, prev
@CST1992
@CST1992 7 ай бұрын
This code is way harder to write than what appears at the end of this video.
@herdata_eo4492
@herdata_eo4492 3 жыл бұрын
thanks ! :D
@romo119
@romo119 Жыл бұрын
This problem is more obnoxious than it is challenging
@shivamlokhande4856
@shivamlokhande4856 2 жыл бұрын
so smooth!!!
@jey_n_code
@jey_n_code Жыл бұрын
FIRST FIND AND UNDERSTAND HOW TO REVERSE A LINKEDLIST IN-PLACE, AFTER IT WILL BECOME WAY MORE EASIERR PROMISEE
@Linuxgnuorgme
@Linuxgnuorgme 2 ай бұрын
Time execution is slow
@geekydanish5990
@geekydanish5990 2 жыл бұрын
simpler solution class Solution: def detectCycle(self, head: Optional[ListNode]) -> Optional[ListNode]: slow,fast = head,head meet = head while fast and fast.next: slow = slow.next fast = fast.next.next if slow == fast: break else: return None while meet != slow: slow = slow.next meet = meet.next return meet
@tsunghan_yu
@tsunghan_yu 2 жыл бұрын
Did you post in the wrong video?
@likkiii07
@likkiii07 Жыл бұрын
Floyd's algo serves a diff purpose. i think u posted this in the wrong video mate.
@chrischika7026
@chrischika7026 4 ай бұрын
tf
@anilkatakam2738
@anilkatakam2738 3 жыл бұрын
Thanks for great explanation. Just want to give one feedback - while explaining you are writing too many color markings which can be avoided. second - coding can be written much understandable format for other language people. you writing deep python code like merging multiple statements into one.
@triscuit5103
@triscuit5103 2 жыл бұрын
Well, that's a very subjective thing. Here is my feedback: Color markings are great, and really help to visualise the solution. Different colors for pointers, values, nodes, edges between nodes, it makes everything so much easier to follow and understand. I don't have Python in my arsenal, but I love it for the purposes of these tutorials. I can clearly understand each line of code, there is no black magic in there, and it would much more verbose in most other languages, which would take more time and potentially confuse viewers.
@winepim
@winepim 5 ай бұрын
Thanks!
@hanif3661
@hanif3661 2 жыл бұрын
⌘⌘ AMAZING ⌘⌘
Flatten Binary Tree to Linked List - Leetcode 114 - Python
14:27
1, 2, 3, 4, 5, 6, 7, 8, 9 🙈⚽️
00:46
Celine Dept
Рет қаралды 111 МЛН
What type of pedestrian are you?😄 #tiktok #elsarca
00:28
Elsa Arca
Рет қаралды 32 МЛН
Restore IP Addresses - Leetcode 93 - Python
17:44
NeetCode
Рет қаралды 45 М.
Top K Frequent Elements - Bucket Sort - Leetcode 347 - Python
13:13
Making an Algorithm Faster
30:08
NeetCodeIO
Рет қаралды 147 М.
Word Ladder - Breadth First Search - Leetcode 127 - Python
17:06
Reverse Linked List - Leetcode 206 - Linked Lists (Python)
8:02
This Is Why Python Data Classes Are Awesome
22:19
ArjanCodes
Рет қаралды 815 М.
Dynamic Programming isn't too hard. You just don't know what it is.
22:31
DecodingIntuition
Рет қаралды 197 М.
1, 2, 3, 4, 5, 6, 7, 8, 9 🙈⚽️
00:46
Celine Dept
Рет қаралды 111 МЛН