int BinTree::mindepth(Node * nd, int level) const { if (nd->left==nullptr and nd->right==nullptr) return level; int l = nd->left ? mindepth(nd->left, level+1) : -1; int r = nd->right ? mindepth(nd->right, level+1) : -1; if (l==-1) return r; if (r==-1) return l; return l < r ? l : r; }
bool BinaryTree::IsBalanced() { return((maxdepth(root) - mindepth(root)) < 2); //return checkBalance(root); -- MyLogic }
bool isBalancedTree(TreeNode<T>* root) { if ( maxdepth(root)-mindepth(root) <=1 ) return true; return false; }
bool BinTree::isBalanced() const { return maxdepth()-mindepth() > 1 ? false : true; }
int BinTree::mindepth() const { return mindepth(root, 1); }