How to solve (almost) any binary tree coding problem

Поділитися
Вставка
  • Опубліковано 28 лип 2020
  • 🔴 Learn graph theory algorithms: inscod.com/graphalgo
    ⚙ Learn dynamic programming: inscod.com/dp_course
    💡 Learn to solve popular coding interview problems: inscod.com/50problems_course
    ⌛ Learn time and space complexity analysis: inscod.com/complexity_course
    🔁 Learn recursion: inscod.com/recursion_course
    NB: This video is ad-free, you can choose to support Inside code by purchasing one of the courses above or dropping a super thanks!
    NB2: Discounts of courses above are permanent
    I also post content on LinkedIn (inscod.com/linkedin) and Instagram (inscod.com/instagram)
  • Наука та технологія

КОМЕНТАРІ • 186

  • @edy231094
    @edy231094 3 роки тому +212

    This is the most undervalued tree algorithm video.
    Info here is gold. Thanks man!

    • @insidecode
      @insidecode  3 роки тому +3

      Thanks a lot for your comment

  • @kwamenani7775
    @kwamenani7775 2 роки тому +35

    I love people who make things this simple, just subscribed to your channel.

  • @insidecode
    @insidecode  Рік тому +2

    Discover the new graph theory algorithms course: inscod.com/graphalgo
    🔴
    / \
    🔵-🔴
    | |
    🔴-🔵

    • @emiledin2183
      @emiledin2183 Рік тому +1

      I will leave a dislike because you didn't explain how it actually works in the code. Like at 1:41 what does assigning a variable to the recursive function even do and mean? Please help me understand. Like why assign the variable and not just return root.data + treesum(root.left) + treesum(root.right) instead? Thank you

  • @tahaather7429
    @tahaather7429 5 місяців тому +4

    Dude what an explanation. Thank you so much, using recursion to solve binary tree problems has been a really huge problem till now

  • @cakec9
    @cakec9 3 роки тому +71

    Wow. Brilliant nugget!! Literally opened my eyes to the problems I am solving!!

    • @twi4458
      @twi4458 2 роки тому

      same😍😍

  • @iez
    @iez 2 роки тому +15

    This is actually an amazing piece of intuition

  • @karthigeyanramesh4477
    @karthigeyanramesh4477 7 місяців тому

    I just wanna say, that thinking of recursion in a way where we fragment the root node made sooooo much sense.
    My exam is next week, thanks!

  • @KGTube
    @KGTube 3 роки тому +5

    Very easy described man!
    Give this man a medal!

  • @indraneel6601
    @indraneel6601 3 роки тому +13

    Give this guy a whole lot of subscribers!!!!!!
    I feel confident to solve tree problems.You Rock man
    Please Create a video how to solve graph problems.

  • @auntyBill
    @auntyBill Місяць тому

    Amazing way of presenting… it’s awesome

  • @pyrostation678
    @pyrostation678 2 роки тому

    Thanks man, this is awesome!!

  • @sonijain4399
    @sonijain4399 Рік тому +3

    Thank u so so soo much man
    Non linear data structures were really tough for me
    From school to college
    It was tough for me to understand
    But now when i am preparing for a job
    I saw your video
    And u saved my life
    Thank u so much

  • @weixiangwong2227
    @weixiangwong2227 Рік тому

    thank you for this video. i'm really bad at binary trees but this way of thinking about it really helps

  • @monarch2397
    @monarch2397 6 місяців тому

    u r genius...the most simple ways i see to learn this bianry tree...tysm blud

  • @madhavkwatra5888
    @madhavkwatra5888 17 днів тому

    Superb explanation , Thanks.

  • @RR-wx8gp
    @RR-wx8gp 2 місяці тому

    Honestly....
    This video is just the best!!!

  • @harinijeyaraman8789
    @harinijeyaraman8789 3 роки тому +5

    Super helpful ! Great content

  • @chandandigumarthy9652
    @chandandigumarthy9652 2 роки тому

    Amazing man! very helpful

  • @vyankateshkulkarni4374
    @vyankateshkulkarni4374 2 роки тому

    great explanation sir, thank you so much

  • @marcin-guitar
    @marcin-guitar 2 роки тому +3

    Well, this is true for a certain kind of trees, where each node counts as equivalent. The same algorithm doesn't necessarily apply to segment trees, binary search trees, KD-trees etc. where an element's position in the tree is more important than its sole presence in the tree.

    • @insidecode
      @insidecode  2 роки тому

      Yes it doesn't apply for all types of trees sure

    • @coolkid9206
      @coolkid9206 Рік тому

      @@insidecode do u have a similar video coming for binary search trees

  • @igbalajobizhikrullah465
    @igbalajobizhikrullah465 2 роки тому

    You just earned a new subscriber....
    Spent hours searching for a simple explanation on Trees, found it in your channel.

  • @Satyamkumar19113
    @Satyamkumar19113 Місяць тому

    Just the best idea to approach binary 🌲 questions

  • @isaacfs8995
    @isaacfs8995 3 роки тому +1

    SUPER HELPFUL!

  • @ragapriyakarthikeyan3139
    @ragapriyakarthikeyan3139 2 місяці тому

    This is exactly what I was looking for💥

  • @TomGoo
    @TomGoo 3 місяці тому

    wow this actually helped me so much thx

  • @prempeacefulchannel
    @prempeacefulchannel 2 роки тому

    Wow, thats such a good approach! Thanks

  • @vijayola7597
    @vijayola7597 2 роки тому +3

    amazing video !! please make more videos in binary trees and graphs

  • @procode6881
    @procode6881 3 роки тому +1

    Wonderful explaination

  • @hydromarlon4168
    @hydromarlon4168 2 роки тому +3

    Bruh. This finally makes sense.

  • @sergeynazarov2473
    @sergeynazarov2473 3 місяці тому +1

    With all respect to the author, this is trivial problems, I thought you clarify at least one of non-trivial: controlling levels of tree, controlling branches of tree, controlling nodes of tree or controlling symmethric of tree.

  • @fifibishi7786
    @fifibishi7786 3 роки тому

    wow very well explained, thank you sooo much!

  • @levidworkin851
    @levidworkin851 2 місяці тому

    Hey Inside Code I loved the video! I just wanted to correct the treeHeight algorithm. It needs to return -1 if the root is None because currently with the returning of 0, the leaf nodes get a height of 1 instead of a height of 0 which will cause the resulting tree height to be 1 greater than it should be.

  • @shivansh2581
    @shivansh2581 Рік тому

    LEGIT MAGICK!!!!! i just solved a question using this logic. SO LUCID. SO CLEAR. TO THE POINT

  • @playingwithmhdsulu786
    @playingwithmhdsulu786 20 днів тому

    Help full video thank you❤

  • @dhairya18
    @dhairya18 3 роки тому +3

    Very sell described. Good work. Keep it up👍

  • @astronautonmars
    @astronautonmars 2 роки тому

    Wow! Super helpful!

  • @paulamorillasalonso3076
    @paulamorillasalonso3076 2 роки тому

    Great video! I'm definetly subscribing😄

  • @curesnow6493
    @curesnow6493 Рік тому

    Thank you so much for this video!

  • @StrangeDooropen
    @StrangeDooropen 5 місяців тому

    OMG thank u so much !

  • @iezioaudi22
    @iezioaudi22 4 місяці тому

    THANK YOU!!

  • @mdzikrullah9575
    @mdzikrullah9575 3 роки тому +13

    This was the coolest explanation of complex problem ever..Thank you

    • @insidecode
      @insidecode  3 роки тому +2

      You're welcome!

    • @DaggerMan11
      @DaggerMan11 3 роки тому +2

      exactly. Once you realize these complex problems all have some pretty easy-to-remember patterns that make them easier to solve, it's just a matter of knowing which pattern to apply.

  • @hangoutwithabhi
    @hangoutwithabhi 3 роки тому

    This is super cool. Thanks 👍🏻

  • @decayingskulls7088
    @decayingskulls7088 2 роки тому

    bro just opened my mind

  • @mdzikrullah9575
    @mdzikrullah9575 2 роки тому

    Kindly make a similiar video on Graphs. It will be soo helpfull. Thanks

  • @paladin5d781
    @paladin5d781 Рік тому

    simple beneficial and inspiring

  • @danielapineyro1998
    @danielapineyro1998 3 роки тому +8

    MAN YOU MADE ME UNDERSTAND RECURSION, finally! Thank you so much!

    • @insidecode
      @insidecode  3 роки тому +2

      You're welcome! Check the 3 hours recursion course I published recently here

    • @danielapineyro1998
      @danielapineyro1998 3 роки тому

      @@insidecode I’ll check it out. Thank you!

    • @insidecode
      @insidecode  3 роки тому +3

      @@danielapineyro1998 I don't have a video on that but I can explain it to you here, did you see in this video the function where we calculate the sum? We calculate the sum from the left, the sum from the right, and we add to them the parent's value. For your problem, you take the same function, but you just add two things, a global boolean variable output that starts at true, and a condition before returning the sum in the recursive function, that condition is: if root.data != left+right: output = False

    • @insidecode
      @insidecode  3 роки тому +2

      @@danielapineyro1998 What we're doing here is that we're traversing the tree, but at each node, after calculating the sum of both subtrees, we're comparing with the parent's value, and we're setting the final output to false if they're different, we used a global variable to be able to access it from any call

    • @insidecode
      @insidecode  3 роки тому +2

      @@danielapineyro1998 The code would be something like this:
      output = True
      def tree_sum(root):
      global output
      if root is None:
      return 0
      else:
      left = tree_sum(root.left)
      right = tree_sum(root.right)
      if root.data != left+right:
      output = False
      return root.data + left + right
      def all_equal(root):
      global output
      tree_sum(output)
      return output

  • @tanujm87
    @tanujm87 3 роки тому

    Super helpful bro. Thanks a lot ❣️

  • @twi4458
    @twi4458 2 роки тому

    Thanks we got a whole diffrent persepective of solving problem. Could you make this kinda videos for other DS also, pls

  • @BryceChudomelka
    @BryceChudomelka 2 роки тому +2

    This is amazing

  • @rishav2520
    @rishav2520 3 роки тому +1

    It's really Awesome 🤩

  • @longchikanouo4905
    @longchikanouo4905 2 роки тому +5

    Finally, this is what I have been looking for; algorithms with proper visualizations. I had to buy all your 5 courses on udemy

    • @insidecode
      @insidecode  2 роки тому

      Thanks a lot for your comment!

    • @ifeanyi3713
      @ifeanyi3713 2 роки тому

      hello, is his dynamic programming course in python?

    • @insidecode
      @insidecode  2 роки тому +1

      Hello, yes it is

    • @ifeanyi3713
      @ifeanyi3713 2 роки тому

      @@insidecode thanks for the reply, I will purchase it. are all your other courses on Udemy in python as well ?

    • @insidecode
      @insidecode  2 роки тому +1

      @@ifeanyi3713 You're welcome! Yes

  • @amanr007
    @amanr007 2 роки тому

    Wow 😎 🥺 thanks brother no more grinding

  • @filmbotreviews
    @filmbotreviews Рік тому

    High quality video! Thanks

  • @coolkid9206
    @coolkid9206 Рік тому

    This actually works holy shit this is insane

  • @JohnDoe-yb9rg
    @JohnDoe-yb9rg 2 роки тому

    Will this formula work for Visible Tree Node problem? If yes, how? Thank you!

  • @lukehatcher98
    @lukehatcher98 3 роки тому +2

    Great video

  • @Radi0he4d1
    @Radi0he4d1 2 роки тому +2

    This nails it

  • @josiahdavid7735
    @josiahdavid7735 2 роки тому

    This man is literally the best!!!

  • @chetanshrivastava3762
    @chetanshrivastava3762 3 роки тому

    Very Nice.God bless you..

  • @subee128
    @subee128 Місяць тому

    Thanks

  • @kirillzlobin7135
    @kirillzlobin7135 8 місяців тому

    Great channel

  • @pranjalmishra2602
    @pranjalmishra2602 3 роки тому +3

    Amazing

  • @ojas2121
    @ojas2121 3 роки тому

    best video. perfectly explained.

  • @shechan456
    @shechan456 2 роки тому

    Thanku sor finally i understood Tree data after 2 months ,thanks a lot Your content is freat

  • @gurudevsanthosh8483
    @gurudevsanthosh8483 Рік тому +1

    For height of tree it must return -1 if root is null.(2.42)

    • @siddharthvikram3054
      @siddharthvikram3054 Рік тому

      that depends if u are taking the height of a leaf node to be 1 or 0, it depends upon the book u are using

  • @myrelaxpoint
    @myrelaxpoint 3 роки тому

    A BIG Thank you 🌹

  • @mayankkhanna9644
    @mayankkhanna9644 2 роки тому

    Can we solve every binary tree problem using either BFS or DFS?

  • @fahmidurarnob2470
    @fahmidurarnob2470 2 роки тому

    Thanks a lot🖤

  • @istiyak_8426
    @istiyak_8426 3 роки тому

    Sukriya Sir

  • @hildamartin8022
    @hildamartin8022 2 роки тому

    thank you!

  • @markfung1
    @markfung1 2 роки тому

    OMg this is amazing lol thank you so much

  • @mahmudulahsan
    @mahmudulahsan 2 роки тому

    Great!

  • @minusCEE
    @minusCEE 2 роки тому

    Underated video

  • @adithiyagurupatham3255
    @adithiyagurupatham3255 2 роки тому +1

    You've earned a new subscriber 🔥

  • @AviPars
    @AviPars 2 роки тому

    Thanks, share code too!!

  • @niketkumardheeryan3865
    @niketkumardheeryan3865 3 роки тому

    Thank u

  • @khanmuhammad3021
    @khanmuhammad3021 3 роки тому

    Wow amazing

  • @jacobmoore8734
    @jacobmoore8734 Рік тому

    Omg it's literally always the same thing, how have I never noticed this before?

  • @harsh9558
    @harsh9558 2 роки тому

    Thx a lot!!!!!

  • @lorenzo.fiorini
    @lorenzo.fiorini 3 роки тому

    Easy and straight forward

  • @vikasagrawal9945
    @vikasagrawal9945 2 роки тому +1

    execellent

  • @shashicsnitjsr
    @shashicsnitjsr 2 роки тому

    How do you create the animation? Are you using any software for tha?

  • @alexirabor
    @alexirabor 2 роки тому

    Thank you

  • @eshank2508
    @eshank2508 3 роки тому +1

    Hi..i have to appear a HireVue interview soon for Deloitte. Will this coursepack be useful to me?

    • @insidecode
      @insidecode  3 роки тому +1

      It contains a lot of popular problems on different patterns and data structures, so it will be useful for you for sure

  • @insidecode
    @insidecode  3 роки тому +2

    Fix: At 2:38, the base case should return -1 not 0

    • @Raven-zk2xq
      @Raven-zk2xq 3 роки тому

      Maybe I misunderstand why, but I think of it like this. If the input is simple None to begin with, is the height 0 or is it 1? From my understanding it would be 0, similar to how an len(arr) where arr is an empty array would also return 0.

    • @insidecode
      @insidecode  3 роки тому

      @@Raven-zk2xq Yes but height 0 is the height of a tree with one node only (the root), so when a tree has no nodes at all, its height is -1

  • @KeshavKumar-qz7ow
    @KeshavKumar-qz7ow 3 роки тому +1

    1:20 the sum will be 110 instead of 120

    • @insidecode
      @insidecode  3 роки тому +1

      You took time to calculate :0 But thanks for telling me!

  • @rajathrao3209
    @rajathrao3209 2 роки тому

    Damn never knew tree's can be broken down like this

  • @sniff4643
    @sniff4643 3 роки тому +1

    can I donate to you on patreon? I rly liked this video.

  • @PepeTostado
    @PepeTostado 2 роки тому

    How do you learn this for sure?

  • @iangoodman7273
    @iangoodman7273 3 роки тому

    isn't the tree that appears at 30 seconds not a valid bst?

    • @insidecode
      @insidecode  3 роки тому

      It's not supposed to be a BST

  • @human-011
    @human-011 3 роки тому +1

    awesome x 100

  • @oladipotimothy6007
    @oladipotimothy6007 2 роки тому

    Recursive thinking

  • @d3v-x64
    @d3v-x64 2 роки тому

    omg thank you, you saved my ass

  • @MrRyanroberson1
    @MrRyanroberson1 2 роки тому +1

    that bri-eff though XD (brief is said as breef, not bri-eff)

  • @santoshreddy9963
    @santoshreddy9963 3 роки тому

    Oooooo maa gooooo, turuuuuu triiick

  • @manikantpandey4753
    @manikantpandey4753 2 роки тому

    Can we have pdf of these codes?

    • @insidecode
      @insidecode  2 роки тому

      I didn't make a PDF of them sorry

  • @servantofthelord8147
    @servantofthelord8147 Рік тому

    Wow.

  • @cocoarecords
    @cocoarecords 3 роки тому +1

    👍

  • @droid806
    @droid806 3 роки тому

    Your code in 1:31 doesn’t seem to work

    • @insidecode
      @insidecode  3 роки тому

      What error you got? Maybe you didn't create Tree class or something

  • @Jigar_S_Rajput
    @Jigar_S_Rajput Рік тому

    Watch it in 0.75x