Iterative & Recursive - Binary Tree Inorder Traversal - Leetcode 94 - Python

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 ส.ค. 2024

ความคิดเห็น • 71

  • @jabir5768
    @jabir5768 ปีที่แล้ว +33

    Thank you father

  • @MaheshKumar-qq7ts
    @MaheshKumar-qq7ts 2 ปีที่แล้ว +27

    I was searching for this explanation few hours back and here it is. You are doing a great job and I mean literally "great job".

    • @MaheshKumar-qq7ts
      @MaheshKumar-qq7ts 2 ปีที่แล้ว

      Also I was worried that since you got job now video would not be that frequent, Please prove us wrong.

  • @thevinarokiarajl2149
    @thevinarokiarajl2149 10 หลายเดือนก่อน +4

    I am as noobish as they come and I first check for any neetcode vids for a problem I encounter in LC. Ur goated fr

  • @muneebmohd
    @muneebmohd ปีที่แล้ว +1

    You have literally every single question explained, jesus. Thank you man I love you!

  • @ancai5498
    @ancai5498 8 หลายเดือนก่อน +3

    I think the core idea to grasp the iterative solution is to understand the recursive solution first,
    Basically, when you do the dfs(node->left), it just keeps finding its leftmost node until it doesn't, then you'll have to pop the stack to 'visit' the node(in-order), then dfs(node->right), it's the time for its right node.
    Hope it helps.

  • @gauravsharma3829
    @gauravsharma3829 2 ปีที่แล้ว +10

    Thanks for explaining so well! It was so clear that I understood in one go.

  • @HiHi-xl9kn
    @HiHi-xl9kn 2 ปีที่แล้ว +10

    Glad to see i'm not the only one that always mistakenly append the node to res lol. Could you share what you use to write/draw? ipad? tablet? touch screen?

  • @trbhlk
    @trbhlk 3 หลายเดือนก่อน

    You should add the call stack explanation to the recursion section in your DS & Algos course. This was insanely helpful to understand recursion and draw a connection to stacks. Thank you.

  • @cewenchi
    @cewenchi 3 หลายเดือนก่อน +1

    Only moment that i realized the importance of the tree structure with a stack is preparing jobs interview ...

  • @andreytamelo1183
    @andreytamelo1183 2 ปีที่แล้ว +4

    Thanks!

  • @trbhlk
    @trbhlk 3 หลายเดือนก่อน

    You should add the call stack explanation to your recursion section from the DS & Algos course. This was insanely helpful to understand recursion.

  • @mr.mrs.gutierrez4975
    @mr.mrs.gutierrez4975 ปีที่แล้ว +3

    Why I need to define private function “inorder”? Why I cannot directly recur self.inordertraversal(root.left) and self.inorderyraversal(root.right)?

  • @Marcox385
    @Marcox385 2 ปีที่แล้ว +13

    Totally off-topic but how you got so good at drawing instructions? Lately I've been giving tutoring and I took inspiration from you (yet again) and used paint 3d for online sessions, the thing is that I always take too long to write/draw stuff that doesn't even looks that good. So, is it just practice or you have a distinct device other than a mouse?

    • @olalekansogunle
      @olalekansogunle 2 ปีที่แล้ว +1

      @NeetCode I have this exact question. Please help if you are able to get to answering

    • @rikpatel
      @rikpatel 2 ปีที่แล้ว +3

      He has responded to this before in another video. He uses Paint 3D and mouse. I guess its just practice. You can alternatively use Drawing pad

    • @halahmilksheikh
      @halahmilksheikh 2 ปีที่แล้ว +2

      @@rikpatel He uses a mouse??? That's crazy. He writes like he uses a stylus.

    • @St0n3dCold
      @St0n3dCold 2 ปีที่แล้ว +1

      just use a stylus

    • @Marcox385
      @Marcox385 2 ปีที่แล้ว +3

      @@St0n3dCold lmao yeah why I didn't thought that? Let me also convert my display into a touchscreen. Better yet, let me get an expensive graphic tablet for something that isn't my profession, that way I could use an stylus, or several, to enhance the tutoring experience

  • @Goodday-nm7zp
    @Goodday-nm7zp 10 หลายเดือนก่อน

    this channel has helped me so much, thank you!

  • @amitp277
    @amitp277 2 ปีที่แล้ว +2

    great explanation thanks!

  • @quirkyquester
    @quirkyquester 2 หลายเดือนก่อน

    best video brother! love this!

  • @servantofthelord8147
    @servantofthelord8147 หลายเดือนก่อน +1

    The iterative code is hard for me to wrap my head around, but I'll keep revisiting it. For anyone in the same boat, I found this code on GeeksforGeeks and it helped me to understand it even more:
    cur = root
    stack = []
    res = []
    while True:
    if cur:
    stack.append(cur)
    cur = cur.left
    elif stack:
    cur = stack.pop()
    res.append(cur.val)
    cur = cur.right
    else:
    return res

    • @Baraa_Sy_99
      @Baraa_Sy_99 หลายเดือนก่อน +1

      Thanks man, that was really helpful 🌷

    • @servantofthelord8147
      @servantofthelord8147 หลายเดือนก่อน +1

      @@Baraa_Sy_99 Glad it helped you!

  • @LilJollyJoker
    @LilJollyJoker 3 หลายเดือนก่อน +1

    Thank You!

  • @ganeshbirajdar4382
    @ganeshbirajdar4382 2 ปีที่แล้ว +3

    Thanks, very helpful 👍

  • @richardmunyao4607
    @richardmunyao4607 2 ปีที่แล้ว +1

    Thanks so much! This helped a bunch!

  • @akira_asahi
    @akira_asahi ปีที่แล้ว

    Thank you for the video. I am grateful for your time and contribution. Kind regards, Akira.

  • @vdyb745
    @vdyb745 2 ปีที่แล้ว +1

    I can't thank you enough for your videos !!!

  • @user-ok4fx3kl6f
    @user-ok4fx3kl6f ปีที่แล้ว +1

    I guess instead of inner while Ioop, we could simply use if condition , am I right ?
    def inorder(root):
    curr, stack = root, []
    res = []
    while curr or stack:
    if curr:
    stack.append(curr)
    curr = curr.left
    else:
    curr = stack.pop()
    res.append(curr)
    curr = curr.right
    return res

  • @pawelkorsunskiy9660
    @pawelkorsunskiy9660 ปีที่แล้ว

    You are a great teacher!

  • @bossmusa9075
    @bossmusa9075 ปีที่แล้ว

    thank you after your explanation i can do it on my own, the description was afwul

  • @Chestuhr
    @Chestuhr 8 วันที่ผ่านมา

    Recursive took like 2 minutes but for some odd reason the iterative solution was trickier than medium graph problems

  • @zooomba62
    @zooomba62 ปีที่แล้ว +1

    heyyy brooo thanks alot❤

  • @dreamphoenix
    @dreamphoenix ปีที่แล้ว

    This is fantastic, thank you.

  • @firstacc5442
    @firstacc5442 ปีที่แล้ว +2

    can you please explain Morris Traversal algorithm, please.

  • @gunahawk6893
    @gunahawk6893 2 ปีที่แล้ว

    dude best explanation

  • @codemarshal655
    @codemarshal655 11 หลายเดือนก่อน +1

    Did you know, you can do iterative in / pre / post order traversals using same code??
    Checkout how I did it in just 20 lines, in my new video
    th-cam.com/video/6wxNc8gCj8E/w-d-xo.html

  • @alexgolomb363
    @alexgolomb363 7 หลายเดือนก่อน

    Thank you.

  • @trenaesthetics2139
    @trenaesthetics2139 9 หลายเดือนก่อน

    Bro I love u thanks man

  • @RelaxationVideos99
    @RelaxationVideos99 ปีที่แล้ว

    Awesome Thanks!

  • @arjunhamdalah4139
    @arjunhamdalah4139 2 ปีที่แล้ว +1

    Do you have basic cs leetcode Playlist? Thanks

  • @lingyuhu4623
    @lingyuhu4623 2 ปีที่แล้ว

    Hope to have your video of 145. Binary Tree Postorder Traversal

  • @yogeshmishra1726
    @yogeshmishra1726 ปีที่แล้ว

    Do we need to know about iterative method if we know recursive one

  • @andreypopov6166
    @andreypopov6166 5 หลายเดือนก่อน

    easy :) easy to remember...

  • @tanyashankar9966
    @tanyashankar9966 ปีที่แล้ว

    May I know why only stack is considered hare ??

  • @ziiiiiiiiiii7325
    @ziiiiiiiiiii7325 ปีที่แล้ว +2

    can somebody help me out here:
    def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
    result = []
    stack = []
    cur = root
    while cur or stack:
    while cur:
    stack.append(cur)

    • @NaveenKumar-xq6ce
      @NaveenKumar-xq6ce ปีที่แล้ว +1

      Because a node is a object of class TreeNode. Makes sense to store in stack cause it stores other things like functions and stuff. But we need to store values in array

  • @anonymoussloth6687
    @anonymoussloth6687 2 ปีที่แล้ว

    Please do shortest path visiting all nodes on leetcode. It's a hard problem.

  • @leetcode650
    @leetcode650 9 หลายเดือนก่อน

    why are we appending the node to stack instead of just appending the values.

  • @nitrozeus5458
    @nitrozeus5458 ปีที่แล้ว

    Yer a wizard, Harry

  • @masternobody1896
    @masternobody1896 2 ปีที่แล้ว

    Nice

  • @kaikim8402
    @kaikim8402 ปีที่แล้ว +3

    Is it Okay if u are solving this problem for the first time and ended up looking at the solution like this?
    I feel guilty seeing the solution that i will be looking for solution every time i encounter problems that i can't solve.
    Any advice?

    • @erinwolf1563
      @erinwolf1563 ปีที่แล้ว +3

      I'm currently in the same shoes as u right now.. but based on my research I think it's okay.. don't feel guilty

    • @antoinenijhuis450
      @antoinenijhuis450 7 หลายเดือนก่อน

      Where are you at in your programming/comp science journey? @@erinwolf1563 @kaikim8402

  • @gregorybai363
    @gregorybai363 2 ปีที่แล้ว

    Any vlogs coming?

  • @numberonep5404
    @numberonep5404 2 ปีที่แล้ว

    I don't think the link you put in the description is the right one :p nice video btw

    • @vdyb745
      @vdyb745 2 ปีที่แล้ว

      True leads to 108 instead of 94

    • @NeetCode
      @NeetCode  2 ปีที่แล้ว +3

      fixed!

  • @bufdud4
    @bufdud4 ปีที่แล้ว +5

    This iterative solution is pretty unintuitive.

    • @user-lz5mb5nj2r
      @user-lz5mb5nj2r ปีที่แล้ว +3

      yea i solved this problem iteratively with a hint of stack usage and it took me almost 5 hours.... my self-esteem is low now lol

    • @antoinenijhuis450
      @antoinenijhuis450 7 หลายเดือนก่อน

      Where are you at in your programming/comp science journey tho? @@user-lz5mb5nj2r

  • @tsunningwah3471
    @tsunningwah3471 4 หลายเดือนก่อน

    zhin

  • @tsunningwah3471
    @tsunningwah3471 4 หลายเดือนก่อน

    zhina

  • @tsunningwah3471
    @tsunningwah3471 4 หลายเดือนก่อน

    b