Table of Contents: (This was one of the first videos I made. Audio sucks. Lighting sucks. It is pretty bad. I'm sorry.) Intro & Video Setup 0:00 - 0:33 Problem Introduction 0:33 - 2:00 Iterative 2:00 - 6:08 Recursive 6:08 - 9:42 Recursive (Detailed Walkthrough) 9:42 - 13:26 Conclusion 13:26 - 13:49 For the recursive way forgot to stress the line saying "head.next = null", this ensures that you point the last node in the reversed portion (built slowly as we go upwards in the recursion) to null. This is important.
@mrknight4115 жыл бұрын
As for the recursive solution, I believe people are confused about head.next.next=head and head.next=null operations because they're not seeing that both rlh and head are referencing the same mutable node objects in heap. In stack where head.data is 3: rlh is 4 head is 3->4 head.next.next=head is 3->4->3->4... head.next=null is 4->3, since it removes all "next" obj ref in 3 to 4, leaving intact 4->3 Since 4 now points to 3 in memory, rlh becomes 4->3 ** debug the recursive solution in your IDE and place a breakpoint on line head.next=null. You will see that rlh.next is now node 3. In stack where head.data is 2: rlh is 4->3 head is 2->3 head.next.next=head, which is 2->3->2->3... head.next=null is 3->2 2 Now rlh is 4->3->2 2 And now the main stack: rlh is 4->3->2 head is 1->2 head.next.next=head is 1->2->1->2... head.next=null is 2->1 , since the obj ref from 1 to 2 is removed Now rlh is 4->3->2->1 , since 2 now points to 1. Recursion is not easy to wrap your head around, especially when dealing with references (or pointers). You did a good job explaining the stack, but you missed the heap :)
@sarfarazalam60775 жыл бұрын
Yeah, I was also wondering why use "head.next = null". Thank you, for clarifying this! Thanks for the video!
@BackToBackSWE5 жыл бұрын
yo
@irfaanjamarussadiq55005 жыл бұрын
Honestly I didn't really mind audio/lighting quality. But I think you could speak a little slower, because it kind of stresses me out when you speak so fast and it's also harder to understand that way. Beyond that, this was a really nice explanation!
@BackToBackSWE5 жыл бұрын
@@irfaanjamarussadiq5500 old video
@5astelija753 жыл бұрын
I never imagined learning code would be this intense
@WildThoughtsAI3 жыл бұрын
lmao
@joshuamarcano3502 жыл бұрын
🤣
@Working8002 жыл бұрын
I like your comment, it is a bitter true a few people discuss lol
@anitasingh-jf1ql5 жыл бұрын
This is literally the best explanation of reversing a linked list on youtube!!!
@BackToBackSWE5 жыл бұрын
thx
@VickyMei5 жыл бұрын
lol I love how you are so enthusiastic about this :D
@BackToBackSWE5 жыл бұрын
ya
@stinkykyle965 жыл бұрын
You seem so excited to explain the problems, it makes your videos engaging 😁 But honestly this is some of the best interview prep that I've gotten, especially since I'm a visual learner.
@BackToBackSWE5 жыл бұрын
Great! :) -Ben
@didi_102422 жыл бұрын
I have been preparing interviews for data scientist positions, and the coding part of the job is not too easy for a person without a computer science background. I was struggling in understanding the recursion function for a really long time, and this is the first time I finally understand it intuitively after watching your video. Thank you so much! Your call stack illustration helps a ton!
@BackToBackSWE2 жыл бұрын
Thank you, glad you liked it 😀 Do check out backtobackswe.com/platform/content and please recommend us to your family and friends 😀
@fardin_shaik5 жыл бұрын
No one can explain recursive thinking better than you, man. Respect
@BackToBackSWE5 жыл бұрын
hahaha thanks
@jiadongyu1312 жыл бұрын
I found myself smiling as I watched this video because your passion and enthusiasm really shone through. Great explanation and good work!
@BackToBackSWE2 жыл бұрын
Great to hear!
@sky765705 жыл бұрын
12:58 Hahaha, explanation with synchronized movements is hilarious bro. Respect.
@BackToBackSWE5 жыл бұрын
ye
@Mines20134 жыл бұрын
Never seen anyone this excited about reversing a linked list, haha
@BackToBackSWE4 жыл бұрын
I am a lively guy
@taesookim5315 жыл бұрын
Thank you,, NEXT
@BackToBackSWE5 жыл бұрын
hahahahahahahahahaha. Best comment on this whole channel. I love you.
@ApexPlayground_divine6 ай бұрын
Bro thanks alot man I final understand this stuff, thanks so much😭
@JakealiciousAndBros Жыл бұрын
I’ve been struggling with DSA, but the way you taught this really opened my eyes. I’ll admit, I watched a few parts several times, but I love your energy and will definitely be returning for future problems!
@cf9214 жыл бұрын
This guy explains reversing a linked list like playing basketball with all the shoes' sound lol, love your enthusiasm ;)))
@BackToBackSWE4 жыл бұрын
hey
@jinhuang72583 жыл бұрын
Explains recursion so well. Thank you.
@AndrewWheelerJr4 жыл бұрын
Kind of makes me miss college. I would also get really excited when I finally understood something and was explaining it to someone. Thank you for helping me understand it.
@BackToBackSWE4 жыл бұрын
Sure. great.
@Sheldor.The.Conqueror3 жыл бұрын
You explain recursion like no one in their wildest dreams can even think of !!!!
@eg8163 жыл бұрын
you're so good at explaining!. thanks !!
@BackToBackSWE2 жыл бұрын
Thanks! try out the 5 day free mini course backtobackswe.com/
@nicolerussack98003 жыл бұрын
Idk how you can be so excited talking about recursion but it's making me excited!!!
@yuselina87693 жыл бұрын
Really love your illustration! Thank you!!
@rikki1462 жыл бұрын
bruh this is a treasure on youtube. thank you!
@pranavbhat9211 ай бұрын
The intention & intensity with which you explain is commendable. You deserve more subscribers. I subscribed! 😊
@roliverma58514 жыл бұрын
Best video on recursion I have ever watched
@uditgaba14504 жыл бұрын
saw this video for reversing a linked list recursively . Helped me a lot . Thanks man !
@BackToBackSWE4 жыл бұрын
great - sure
@robinr20154 жыл бұрын
Does anyone know why next can't be initialized to curr.next? When I did it that way I got a null pointer exception but I can't figure out why that is the case
@robinr20154 жыл бұрын
nevermind, I realized it is because I am changing next after making curr point to prev, so next was just getting assigned to prev
@BackToBackSWE4 жыл бұрын
@@robinr2015 great to hear you got it!
@Polarwhite434 жыл бұрын
Best explanation out there Thanks man
@BackToBackSWE4 жыл бұрын
thanks
@zahranajib55284 жыл бұрын
Ahhh please make more videos!!! You are such a lifesaver I swear. Watched your video like 5 times to really understand the concept. Maybe on recursion and more data structures. Also, a suggestion, try to talker slower :)
@BackToBackSWE4 жыл бұрын
Thanks and we will
@fantasy99602 жыл бұрын
this is the best explanation for listNode reverse! Really appreciate it !!
@kunalkeshavsinghsahni68614 жыл бұрын
Thanks for the beautiful explanation
@BackToBackSWE4 жыл бұрын
sure
@serrasilva73163 жыл бұрын
I love your enthusiasm. It makes it so much more fun to learn.
@prathyyyyy3 жыл бұрын
THE BEST VIDEO ON KZbin !!!!!!!! IM IN LOVE :)
@bn20054 жыл бұрын
thank you for framing this as pointer manipulation instead of "moving nodes" like so many tutorials do
@BackToBackSWE4 жыл бұрын
sure
@myeoIgong5 жыл бұрын
Thanks buddy, I like your explanation better than other's.
@BackToBackSWE5 жыл бұрын
nice
@ashwinvarma93494 жыл бұрын
I came here for the recursive method and the explanation was great! keep it up!
@BackToBackSWE4 жыл бұрын
sure
@maricampbell82405 жыл бұрын
Thank you! The iterative explanation and diagram was so helpful for me. I was able to implement the function without looking at a code example, but from imagining the diagram you created.
@BackToBackSWE5 жыл бұрын
nice
@anthonysoffice93674 жыл бұрын
you explanation on recursive method was pretty clear
@BackToBackSWE4 жыл бұрын
great glad it helped
@soujanyayprabhakar4 жыл бұрын
I watched so many explanations regarding this i could not understand but i got an idea about this by watching your video . Kudos !!!
@BackToBackSWE4 жыл бұрын
thanks
@deepeshrathod20442 жыл бұрын
Damn! this is the best video I found. It just cleared all my doubts for reversing a linked list recursively. Thanks for the video.
@anmolsharma95393 жыл бұрын
The time i see that you had made a video on this i know that my doubt is going to get resloved before the video gets over and it happened :)
@joshj84592 жыл бұрын
Yea I subscribed. You had me on the edge of my seat the entire video like I'm watching a suspenseful movie.
@BackToBackSWE2 жыл бұрын
haha thanks for the sub
@showmerockk3 жыл бұрын
this is the best explanation of this concept
@BackToBackSWE2 жыл бұрын
Hahaa yay
@ExplorerSpace3 жыл бұрын
omg you are a life savior
@LesAxolotl3 жыл бұрын
Hey man, thanks for this video. It's such a simple an elegant solution. I spent the last 12 hours trying to solve it myself (not too smart really) and finally gave up and came here. Your explanation is so clear. Cheers!
@aniarablechannel46682 жыл бұрын
Just because you couldn’t solve it doesn’t mean you are “not too smart”. It could just be a difference in coding experience. I wouldn’t get down on yourself. You’re already doing great and setting yourself up for success by working hard to get better and watching videos like this!
@alhaithamaljabri61264 жыл бұрын
OMG... Thank you so much for your amazing teaching skills! I am happily crying since this finally makes sense to me after all that struggle...
@BackToBackSWE4 жыл бұрын
thanks and nice haha
@himanshusarad64913 жыл бұрын
tysm man ...you literally nailed it with this explanation .....finally i understood how to do this now.
@teensymarie3 жыл бұрын
I can only hope that one day I can explain this with as much excitement and clarity as you do.
@jbphoto73 жыл бұрын
Finally! A perfect explanation.
@Ryan-xb1ry2 жыл бұрын
I finally understand this. Thank you.
@BackToBackSWE2 жыл бұрын
Thank you, glad you liked it 😀 Do check out backtobackswe.com/platform/content and please recommend us to your family and friends 😀
@labgeek15594 жыл бұрын
love your videos, keep up the great work.
@BackToBackSWE4 жыл бұрын
thanks
@anupamdungdung94173 жыл бұрын
Sir the way you give so comprehensive explanation... I love it!
@supamdeepbains5172 Жыл бұрын
my homie always there to help me with data structures
@niharikayerramsetty85824 жыл бұрын
i have seen many videos but urs is awesome and the best
@BackToBackSWE4 жыл бұрын
thanks.
@kanishkarao9793 жыл бұрын
Finally a simple explanation. Thanking God for creating you 😁 😁 😁 😁 😁
@chamnil86664 жыл бұрын
Thanks Handy Dandy,now i can reverse a linked list,have a blessed day.
@BackToBackSWE4 жыл бұрын
great
@mamoodshaban3119 Жыл бұрын
That was really helpful man. I'm grateful! Keep up with the good work!
@BackToBackSWE Жыл бұрын
Happy Holidays 🎉 Thank you for your kind words! We'd love to offer you a 40% Off our exclusive lifetime membership just use the code CHEER40 - backtobackswe.com/checkout?plan=lifetime-legacy&discount_code=CHEER40
@TadiwanasheNyamapfene7 ай бұрын
Absolutely the best video to explain this. Just took away all my frustration lol!!
@jake181119963 жыл бұрын
every one is asking how he is so enthusiastic but my mannnn took a preworkout and he is getting the pre workout kick!!!!
@helenashatalova78282 жыл бұрын
Finally, I got it! Thank you so much for your video! Your channel is a hidden jam!
@BackToBackSWE2 жыл бұрын
thanks!
@Roover_sa4 жыл бұрын
Brother no words for you . i am stuck at temp->next->next but you nailed it with the example "Let me Add myself" Lot's of love from india
@BackToBackSWE4 жыл бұрын
hey
@tienduong77292 жыл бұрын
My man big on energy. Love it!
@iraisvalenzuela6147 Жыл бұрын
Thanks for the video! You simplified this so much for me!
@rohitmehta52585 жыл бұрын
So once the base case is hit (head becomes the 4th node, reverse happens and the list is now 5 -> 4), the return head is applied to every instance of the function in each stack right? So first the return head is applied to the instance in the stack where the reverse list head is 4 (producing 5 -> 4), then to the stack where reverse list head is 3 (producing 4 -> 3), so on and so on. My question is, how does the program know to apply the return head to the instances in reverse order?
@BackToBackSWE5 жыл бұрын
What do you mean? Sorry, I'm not understanding - all the data is saved in the stack & each stack from has memory of the head that was passed into its call
@jacktrainer43873 жыл бұрын
These videos are amazing. You're a phenomenal instructor.
@BackToBackSWE2 жыл бұрын
Thanks man! subscribe to my DSA course for some amazing content b2bswe.co/3HhvIlV
@ArjunKalidas4 жыл бұрын
Wow! Leetcode had only 250 problems when this video was recorded. Now it has crossed the event horizon lol!
@BackToBackSWE4 жыл бұрын
No it had 780, I just aimed to do 250 problems that hit core concepts since most of their problems just repeat core ideas.
@romanazeem30984 жыл бұрын
@@BackToBackSWE Hey man. it was the best explanation for the reversal link list. it doesn't take a second try.
@ArjunKalidas4 жыл бұрын
@@BackToBackSWE True, that makes a whole lot of sense.
@tarunkolla5 жыл бұрын
I got the logic by 3:20 you are really dope at this.
@BackToBackSWE5 жыл бұрын
haha thx
@RizaHariati4 жыл бұрын
WAAAH I FINALLY UNDERSTAND IT BROO!!!
@BackToBackSWE4 жыл бұрын
great
@gazalaparveen12542 жыл бұрын
This is literally the best explanation I have come across🙌
@BackToBackSWE2 жыл бұрын
Thank you, glad you liked it 😀 Do check out backtobackswe.com/platform/content and please recommend us to your family and friends 😀
@ri7_cars4 жыл бұрын
Thanks, finally understand the recursive solution. The explanation of call stack really helps.
@BackToBackSWE4 жыл бұрын
thanks
@annawilson3824 Жыл бұрын
10:40 so we have head that points to 3 and new_head(reversedHead) that points to 4. Overall, since each time we have a function call with a new/subsequent head, once we start returning, the head is going to be updated for each call in the reversed order once we propagate back/up the stack, but new_head/reversed will stay the same (we set it value once when we reach the depth of the calls) and always points to 4, so we return it at the end of the whole function.
@TCErnesto3 жыл бұрын
I really liked your explanation on the recursive method bro thanks
@lukehatcher984 жыл бұрын
incredible explanation. THANK YOU
@normantas39404 жыл бұрын
Not ganna lie, this video was very clear!
@BackToBackSWE4 жыл бұрын
nice
@soradev53864 жыл бұрын
It took a while to sink in, but thanks for this detailed explanation to the problem. You killed it
@BackToBackSWE4 жыл бұрын
thx
@txaggie095 жыл бұрын
Very good explanation. I've watched a few of your videos and all of them so far have been easy to follow and does a good job of explaining the approach.
@BackToBackSWE5 жыл бұрын
thanks, welcome to the tribe 🍖
@1cannon35 жыл бұрын
So is ReversedListHead returning: x
@BackToBackSWE5 жыл бұрын
'reversedListHead' just preserves the head of the reversed linked list as we return back upwards and pop off stack frames. The actual reversing is done on the 'head' element where we point the 'next' field of the node after 'head' to 'head' itself (a fundamental reverse operation). We do this repeatedly and the very nature of popping off stack frames makes us do this in a manner traversing the list backwards...leading to a full list reversal after doing that subroutine for each link. "My understanding was that the recursive call keeps getting called before the things underneath it ever get called until you hit the base case." Yep. We keep calling reverseList(head.next); until we hit the base case...then we have all nodes on the stack with recursive calls. "But then what?" The 2nd bottom call now gets back the head of the reversed list in "reversedListHead". Then the node we hold called 'head' (in the 2nd to bottom call) points it's next node (the last node in the list) to itself. This continues upward. Every call hands off "reversedListHead" upwards to the next guy until the top level call hands off that reference to the original caller (and in the meanwhile the whole list got reversed by the work in the middle). Is this clear? Continue asking questions.
@1cannon35 жыл бұрын
"'reversedListHead' just preserves the head of the reversed linked list as we return back upwards and pop off stack frames." "The actual reversing is done on the 'head' element where we point the 'next' field of the node after 'head' to 'head' itself (a fundamental reverse operation)." This was what I needed, so clear! My mistake was forgetting that all the heads were already attached to our now reversed linked list as we go back up. Thanks for the quick reply, you're incredible, wish I had your work ethic!!
@BackToBackSWE5 жыл бұрын
@@1cannon3 Excellent. I have "ok" work ethic, trust me. It is just that this stuff pisses me off...that's why this channel exists. To be a little help.
@sanghunlee68252 жыл бұрын
Life saver bro Thanks for your kind explanation
@alpavaidya4124 жыл бұрын
If I had a teacher as enthu as u bout teaching I would have been better programmer today...appreciate your efforts
@BackToBackSWE4 жыл бұрын
thanks
@spiritualgyanhindi26812 жыл бұрын
Thnx! Finally, I got this logic of returning back after top to bottom😄
@andywu97744 жыл бұрын
This guy is probably the most passionate CS guy in the entire universe!
@mingyuetang70415 жыл бұрын
Great explanation!!! gonna use your videos for interview prep. Many thanks 🙇
@BackToBackSWE5 жыл бұрын
great!
@wilsonxie4 жыл бұрын
THIS IS WAY TOO GOOD! HOLY COW
@BackToBackSWE4 жыл бұрын
thx
@kevintravelsgram5 жыл бұрын
I thought the recursive way was really confusing so I had to look it up on KZbin. Really glad I found this video. Amazing explanations!
@BackToBackSWE5 жыл бұрын
haha nice, wassup
@mahfxd3 жыл бұрын
Bro the energy, i love it
@diegoi1313 Жыл бұрын
Thank you for this well informed video!
@phantom4dji4662 жыл бұрын
this was awesome and helped me out a lot. Thank you!
@darod60986 жыл бұрын
Subscribed. Keep uploading videos like this everyday and your channel will grow a lot! You rock
@BackToBackSWE6 жыл бұрын
Workin' on it. I'm tiring haha
@darod60986 жыл бұрын
@@BackToBackSWE Haha you can do it :) Thanks for your efforts!
@jacobl74514 жыл бұрын
this problem is basically a meme “after years of tech experience. I got rejected by Google....couldn’t reverse a linked list”
@jaiprakashshrivastav23784 жыл бұрын
Very good diagrams and explanation. Keep it up buddy !
@BackToBackSWE4 жыл бұрын
thanks
@raz4782 жыл бұрын
You explained it very well
@parnitasharma88984 жыл бұрын
thanks man!...U saved my time and energy
@nabilkhalil69354 жыл бұрын
So helpful thank you so much.
@BackToBackSWE4 жыл бұрын
sure
@tony78545 Жыл бұрын
you're amazing dude! Thanks a lot!
@stumbino8361 Жыл бұрын
Keep up the good work! Doing a great job on the content.
@harshalpatil55235 жыл бұрын
you explained amazing brother
@BackToBackSWE5 жыл бұрын
thx
@samuel23182 жыл бұрын
really love his way to explain this question🤣 he is so enthusiastic and energetic!
@leetsai62204 жыл бұрын
Watching your explanation and just the passion that you put into these videos really helped me remember the nuances of this problem.
@BackToBackSWE4 жыл бұрын
great
@ubohllc65875 жыл бұрын
Great Job and great explanation. You take so much effort to explain. Thanks so much!!
@BackToBackSWE5 жыл бұрын
sure
@congdatt Жыл бұрын
Amazing Teacher 🥳
@BackToBackSWE Жыл бұрын
Happy Holidays 🎉 You are amazing, congdatt! We'd love to offer you a 40% Off our exclusive lifetime membership just use the code CHEER40 - backtobackswe.com/checkout?plan=lifetime-legacy&discount_code=CHEER40
@ankurjain83395 жыл бұрын
Such a thorough and simple explanation. Thank you!
@BackToBackSWE5 жыл бұрын
sure
@fabregasonline4 жыл бұрын
what happens if you do not make current.next to prev, won't it still be the same
@BackToBackSWE4 жыл бұрын
I dont remember the code much tbh - I'd contribute critical thinking if I did