Height of a Binary Tree / Maximum depth of a binary tree Algorithm [REVISITED]

Поділитися
Вставка
  • Опубліковано 9 лис 2024
  • Find the height of a binary tree. The height of a binary tree is the maximum depth of the binary tree.The height of the root is called the height of the binary tree.

КОМЕНТАРІ • 225

  • @codewithree930
    @codewithree930 3 роки тому +33

    Wow! Finaly I got someone who have deeply explained it..I got the feel...
    Thanks a lot🙂

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

      mmmmm....

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

      Yep, he gives us the feel of ds

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

      not like apna college

    • @Man_of_Culture.
      @Man_of_Culture. 3 роки тому

      @@anandoganiya9070 both of them are good , I follow many UA-cam channel on DS and Algo because in the end it's about learning and learning .

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

      @@Man_of_Culture. ik but they are running which leads to misunderstanding and lots of confusion but this guy explains it just right best for beginners

  • @vicky888
    @vicky888 3 роки тому +14

    I've never seen someone has such great patience,really good explanation!

  • @KeithWarter
    @KeithWarter 4 роки тому +24

    Thank you for these videos! They are much appreciated!!!! This stuff needs to be slowed way down to grasp it at first just like a musical instrument. You taking the time to white board it like this is really really helpful.

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

    Thank you for the in-depth explanation. No other video on YT explains the recursive calls which is the most imp part of trees.

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

    I have seen many videos, Everyone says call the method recursively to find left height and right eight and find the max btw them. But no one told how the code is running line by line. But your the only person who showed how recursion works with 123 way of teaching, Loved the video.

  • @farahluvs1d
    @farahluvs1d 4 роки тому +1

    thank you, this is the best most detailed explanation i found,rather than just writing the code and explaining in 5 monutes

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

    Was about to have a breakdown because I was not getting this problem but your video made it very easy to understand. Thank you for the step by step explanation. धन्यवाद!

  • @samyakjain8384
    @samyakjain8384 5 років тому +1

    Explaining recursion is very tough and you explained it in very easy manner

  • @love_piano_3000
    @love_piano_3000 10 місяців тому +1

    I have literally searched every video related to this topic and this one cleared all my doubts , Thanking you so much Sir... 😃😃😃

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

    Wow, four years ago yet explaining the concept that deep as if it is being done today. Vivekanand that is great and deep. Thank you.
    Where are my likes for him guys?

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

    Looked for explanations everywhere and you were the only one that explained it clearly enough for me to understand. Thank you!

  • @danielchia1389
    @danielchia1389 4 роки тому +2

    This is helped me understand it after watching other videos that didnt explain it as detailed as you. Thank you !!

  • @LarryRuane
    @LarryRuane 7 років тому +18

    Thanks, great explanation. Just one small suggestion with the code -- the variable h is declared locally within the "if" and "else" blocks, so is no longer in scope for the "return" statement. So you would need to declare h before the "if" statement.

    • @usman3D
      @usman3D 7 років тому +1

      Exactly my thoughts

  • @shreyassule2219
    @shreyassule2219 4 роки тому +2

    Hi Sir, Thank you so much for these videos. Your style of explaining algorithms with examples and then walking us through each step of the code really helps to grasp the concept very effectively. If I may be allowed for just one small suggestion can you also please explain the time complexity for these? Regardless, great fan of your teaching. Keep up the good work!!

  • @piyushsharma1638
    @piyushsharma1638 5 років тому

    I really liked the way you show small details like, why we add 1 in finding the height of a binary tree, most of of the videos simply add 1 and not explain any reason behind it, i know it is easy part but at least you explained.

  • @VikiSangani
    @VikiSangani 5 років тому +2

    Very easy and to the point explanation. Presentation is also very nice. Thank you for sharing knowledge. Looking forward the same in future.

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

    very well explained bhaiya....hmko ni lg atha ki mai isse samjh paunga, but you really made it possible...thanks a lot..

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

    You are doing a great work sir ,
    Your tutorials are really very helpful
    🙏🙏

  • @xiaolongli1898
    @xiaolongli1898 4 роки тому +6

    There is an error:
    for the last part:
    if(left > right) {
    int h = 1 + left;
    }
    else {
    int h = 1 + right;
    }
    return h;

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

    THANKS SOO MUCH!!! I had a great deal of difficulty to understand the recursion portion of this solution! You explained it very easily! Thanks again man!

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

    Your are gem sir , I saw so many video but after watching your video I got the how its working , keep posting videos :)

  • @rishipalbhatia
    @rishipalbhatia 6 років тому +2

    If you compile this code, you will get an error on the line return h;
    That's because the two declarations of variable h are inside the scope of if { } and else { }. You're trying to use h outside it's scope.

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

    Never thought someone can explain it so deeply... Thank you so much

  • @modernsanskari4398
    @modernsanskari4398 7 років тому +16

    In step 3 you can directly write.
    h = max(left , right) + 1;
    return h;

    • @yoonlee5278
      @yoonlee5278 5 років тому +3

      I think he meant to explain purely used conditional statement for the people to understand more easily.

    • @reyou7
      @reyou7 5 років тому +3

      You can take entire code, and put in a text box, and turn into a single line.
      shorter != better.

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

    Thank you so much !!! you have cleared all the confusion for the algorithm for searching the height of BST

  • @KamalKumar-bk6rn
    @KamalKumar-bk6rn Рік тому

    Thank you Vivekanand for the clear explanation.

  • @ryujiganaha9645
    @ryujiganaha9645 4 роки тому +5

    Thank you so much for the great explanation! Big appreciation from Japan

  • @chauhanrachit
    @chauhanrachit 6 років тому +3

    Can you please create playlists under your channel ? Like trees, dynamic programming, graph

  • @ritik8879
    @ritik8879 4 роки тому

    Excellent explanation for recursion . Really you have a very good understanding of dsa

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

    Very slowly explained in the start. But you made it clear! Thanks :)

  • @vickyhu6970
    @vickyhu6970 4 роки тому +2

    You are excellent at explaining things clearly! Thank you for this video.

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

    Thanks a lot sir, you have removed all my confusion created by my prof.

  • @souravghosh7093
    @souravghosh7093 4 роки тому

    This is the best explanation i found. Thanks. Need to watch at 2x

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

    THANK YOU VERY MUCH SIR. Your ability to express is very good.

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

    The best explanation I've seen online. Thanks very much!

  • @jamesqiu6715
    @jamesqiu6715 7 років тому +1

    appreciate you make a revisited video to cover previous doubt on height definition. good job.

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

    You explain better than anyone else. Most videos explain logic but don't have code. You do show code. But I just haven't seen any single video that explains with test cases (with input data) and code. After viewing your video I am still now sure what value of node is passed to the function. Is it pointers to left and right edge or is it something else?

  • @vivekmit
    @vivekmit 5 років тому

    In a nut-shell ,we are traversing the a binary tree to count the level at each node. Can you brief we, which kind of binary traversal we implemented in this video ? Can we implement same logic with different kind of traversal like inoder/preorder ?

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

    Wow sir 🥰🥰....I could not hold myself to appreciate your explanation...
    Thank you sir...

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

    thankyou so much sir for such a detailed explanation

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

    Finally someone explained it....thank you so much

  • @ashishchaudhari8223
    @ashishchaudhari8223 4 роки тому

    Thnks sir by explaing thic concept of maxdepth and also recursion function

  • @juhisingh4509
    @juhisingh4509 4 роки тому

    Very good explaination of recursion ...Thanku sir

  • @m.motivation6299
    @m.motivation6299 2 роки тому

    The best explanation ever

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

    Tremendous explainatio sir, ❤from BD

  • @RN-jo8zt
    @RN-jo8zt 8 місяців тому

    Def: The height of a node in a binary tree is the largest number of edges in a path from a leaf node to a target node
    but why we still adding 1?

  • @nitinmonga6975
    @nitinmonga6975 4 роки тому

    Very well explained sir.. Thank you so much

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

    Well said. Good explanation. Greetings from new york......
    Cubao

  • @preetichauhan3272
    @preetichauhan3272 6 років тому

    Thanks Vivekanand for your videos, your algorithms helps me a lot in learning Java.

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

    Thank you, I understand after seeing step by step

  • @yasirshaikhkhan6189
    @yasirshaikhkhan6189 5 років тому

    Thanks sir.... your clear explanations and presentation help better to understood..

  • @anjalidarokar2408
    @anjalidarokar2408 4 роки тому +1

    Sir, the height of a binary tree is the number of edges in the longest path from the root to the leaf, not the number of nodes from the root to the leaf, therefore, here, height = 4.

    • @Sun-yv9fr
      @Sun-yv9fr 4 роки тому

      you are talking about the depth. Depth is 4 and height is 5.

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

      @@Sun-yv9fr google it...

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

    Thank you for the in-depth explanation

  • @vishnu_bhatt
    @vishnu_bhatt 6 років тому

    C++ code:
    int height(Node* root) {
    if(root==NULL || root->left==NULL && root->right==NULL) {
    return 0;
    }
    int left = height(root->left);
    int right = height(root->right);
    if(left>right) {
    return left+1;
    } else {
    return right+1;
    }
    }
    The height of a node is the number of edges on the longest path between that node and a leaf.
    The level of a node is defined as: 1 + the number of edges between the node and the root.

  • @abdelrhmanahmed1378
    @abdelrhmanahmed1378 4 роки тому

    int find_height(BstNode* root)
    {
    if (root == NULL)
    return -1;
    else return max(find_height(root->left), find_height(root->right)) + 1;
    }
    you need to return -1 ,because last recursion on the leaf node must return 0 ,because the height of the
    leaf node is 0 so max(-1,-1) +1 --> will evaluate to 0
    and for those who are intelligence enough will realize that when we return to the root node after we finish the left recursion the height will be shorter by one ,that one will get added after we finish the right sub-tree
    if the right sub-tree is shorter that the left so that one that get added will get the us right height ,and vice versa if the right height
    is longer

    • @abdelrhmanahmed1378
      @abdelrhmanahmed1378 4 роки тому

      and by the way the definition of tree height is the max edges from the root to the longest path
      to the leaf ,so its not 4 or 5 there is only one right answer which is 4 for this example

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

    Really good explanation, keep up the good work

  • @amangarg6531
    @amangarg6531 7 років тому +1

    sir please make the video on clone a binary tree with random pointers and also bactracking concept. your videos are very helpful for us🙂

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

    By this i learned recursion too thanks:)

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

    Got in one go thank you Vivekanand !

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

    Good content! Detailed and precise explanation!

  • @adarshlakshmanan
    @adarshlakshmanan 6 років тому

    The height of the tree is calculated wrong. Counting the edges, the height is 4, not 5.
    This is how you correct it:
    In the program,
    if (p==null){
    return -1; //Instead of 0 as shown in the video.
    }
    This also make sense conceptually since the depth of a Null node is -1 & not 0.

    • @sumanreddyg8245
      @sumanreddyg8245 5 років тому

      So for a NULL tree what is the height you want to return -1 ? I hope 0 is right answer, if zero is right then height is 5 not 4, for NULL tree both depth and height must return 0

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

    Great explanation on this and the video about the diameter of a tree. Was able to solve the leetcode question on the first go. Sub'ed :)

  • @jitendragupta4661
    @jitendragupta4661 4 роки тому

    The best explanation!Keep posting!

  • @tumble_dont_fall
    @tumble_dont_fall 4 роки тому

    best explanation on the internet

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

    Best explanation ever!!!!

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

    In code everything is correct but return value is -1 so we get height of binary tree is equal to 4 not 5

  • @Gudsan
    @Gudsan 5 років тому

    very nice explanation sir

  • @shreyasangane3822
    @shreyasangane3822 4 роки тому

    Your are Awesome !!!!!!!!!!!!!!!!!!!!! You made it very simple and clear.

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

    great explanation thank u sir

  • @sagarkolhe5927
    @sagarkolhe5927 4 роки тому

    great job vivekanand....

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

    Amazing explanation!

  • @FamousEgyptboy
    @FamousEgyptboy 6 років тому +1

    Thank you sir for great explanation !

  • @maazalam66
    @maazalam66 7 років тому +1

    Really nice explanation. ...thank you ...keep making videos

    • @coderajput1816
      @coderajput1816 7 років тому

      no it is not working properly....if any mistake in my code then please comment
      i uploaded the code in my comment

  • @jaysahu357
    @jaysahu357 7 років тому +2

    sir could you tell me how to think to solve any problem by recursion

    • @timr1810
      @timr1810 5 років тому +2

      Step 1, base check - are you at the bottom, in this case node = null. if you are reversing a string, then its when the string length is zero. Basically this is the point when your recursion must stop. This is always the first thing you do!
      Step 2, reduce the working set - for recursion to work, each time you make a recursive call you must reduce the set somehow, else you have an infinite loop. In this case the reduction is node.left or node.right, For string reverse this is when you remove one char from your string
      Step 3. make your recursive call and "Assume it Works"!, that is when you call height(node.left) assume the return is the height of what you passed in. If you are reversing a String, the response is a reversed-string
      Step 4. apply logic - This step varies depending on what you are trying to accomplish:
      In case of height, you know you want the max, so take the max of rightHeight, leftHeight.
      In the case of a string reverse . You have two parts, the part from the reduction step( the char) and the part returned from the recursion call (the reversed sub-string) - so if you took the char from the beginning of the string, you put it at the end of the reversed sub string.
      Hope this helps, it helps me to keep recursion straight. - Step 4: Assume it works is the key

  • @MrRimmy
    @MrRimmy 6 років тому

    VERY GOOD EXPLAINATION

  • @harshitraj4199
    @harshitraj4199 4 роки тому

    finally mil hi gya.... thanks a lot

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

    thank you sir. worth to watch your videos..!!

  • @MohitSharma-hd7gj
    @MohitSharma-hd7gj 6 років тому +1

    sir return h; if and else blocks mai aayega

  • @ArunKumar-gp2vq
    @ArunKumar-gp2vq 3 роки тому

    Thank you so much brother you are doing great job

  • @mohamedelkayal8871
    @mohamedelkayal8871 7 років тому

    Your videos have been very helpful

  • @itis_beard_man2471
    @itis_beard_man2471 4 роки тому +1

    Good, I understand this very easily thank you!

  • @jeezradz
    @jeezradz 4 роки тому

    what is the time complexity for this???

  • @18ajai
    @18ajai 4 роки тому

    Very well Explained

  • @deepakborah8335
    @deepakborah8335 7 років тому

    Very good explanation.

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

    finally found what i needed ... thank you sir

  • @JULIUSNGIGIux
    @JULIUSNGIGIux 4 роки тому

    Please update this video with the correct information. The height of a binary tree is the number of edges in the longest path from the root to the leaf, not the number of nodes from the root to the leaf.

  • @tayrx9988
    @tayrx9988 5 років тому +2

    OMG finally understood this bullshit, thanks so much

  • @layavullakula1908
    @layavullakula1908 5 років тому

    Osm explanation sir.....but pls little bit faster must be there

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

    Thank you, sir! you really helped me

  • @ShreyaSingh-vr9qi
    @ShreyaSingh-vr9qi 4 роки тому

    Hii, Can u please make video on this " Find height of a special binary tree whose leaf nodes are connected ". Thanks In Advance !!

  • @jaysahu357
    @jaysahu357 7 років тому

    very nice explaination sir

  • @Anonymous-jt3yz
    @Anonymous-jt3yz 5 років тому

    Best Explanation Ever

  • @azizas9366
    @azizas9366 6 років тому

    I like your explanation algorithm

  • @DeepakGupta-pt5rv
    @DeepakGupta-pt5rv 7 років тому +2

    Sir,You are the best!!

  • @saldanhakaren1
    @saldanhakaren1 6 років тому

    really good videos, looking forward to more content

  • @codelover847
    @codelover847 6 років тому

    Great explanation👍👍

  • @gauravmishra4780
    @gauravmishra4780 5 років тому +1

    Sir, I think there is a mistake in the declaration of variable "h" as it is declared every time in the code.

  • @100_bindusai8
    @100_bindusai8 4 роки тому

    Easy to understand 😀😊

  • @2010aishwary
    @2010aishwary 4 роки тому +1

    in this way the height of the binary tree with only root node will be 1 but the actual height of binary tree with only root node is 0 ??

  • @srilekha9177
    @srilekha9177 5 років тому

    Thanks a ton. Clear explanation.