xxxxxxxxxx
int height(Node* root) {
// Base Condition : if root is already null. then height must be -1 to make balance with recursion call...
if(!root) return 0;
// Actual Return statement.. for recursion call..
return 1 + max(height(root->left), height(root->right));
}
xxxxxxxxxx
int height(Node* root)
{
// Base case: empty tree has height 0
if (root == nullptr)
return 0;
// recur for left and right subtree and consider maximum depth
return 1 + max(height(root->left), height(root->right));
}
xxxxxxxxxx
// finding height of a binary tree in c++.
int maxDepth(node* node)
{
if (node == NULL)
return 0;
else
{
/* compute the depth of each subtree */
int lDepth = maxDepth(node->left);
int rDepth = maxDepth(node->right);
/* use the larger one */
if (lDepth > rDepth)
return(lDepth + 1);
else return(rDepth + 1);
}
}
xxxxxxxxxx
public static int Height(Node root)
{
if(root==null)
return -1;
if(root.left==null && root.right ==null)
return 0;
return 1 + Math.Max(height(root.left),height(root.right));
}
// node Structure for reference
public class Node
{
public int data;
public Node leftChild;
public Node rightChild;
public Node(int data)
{
this.data = data;
}
}
xxxxxxxxxx
height(10) = max(height(5), height(30)) + 1
height(30) = max(height(28), height(42)) + 1
height(42) = 0 (no children)
height(28) = 0 (no children)
height(5) = max(height(4), height(8)) + 1
height(4) = 0 (no children)
height(8) = 0 (no children)
xxxxxxxxxx
//claculate the minimum height of binary tree
const minHeightTree =(root)=>{
if (!root) return 0;
let left = minHeightTree(root.left);
console.log(left)
let right = minHeightTree(root.right);
console.log(right)
if(left< right){
return left +1 ;
}else {
return right+1 ;
}
};