二叉树的深度是指从根节点开始(根节点为第一层)直到最下面一层叶节点的层数,它是自上而下的。
二叉树的高度是指从最下面一层的叶节点(高度为1)自下向上逐层加一,直到根节点。而且二叉树的高度等于左右子树的高度加一。
struct TreeNode { int val; TreeNode *left; TreeNode *right; }; int depth(TreeNode * root) { if (root == NULL) { return 0; } else { int hl=depth(root->left); int hr=depth(root->right); if (hl > hr) { return hl + 1; } else return hr + 1; } } bool isBalanced(TreeNode *root) { int hl=0; int flag = true; if (root != NULL) { hl = depth(root->left); int hr = 0; hr = depth(root->right); if (abs(hl - hr) >= 2) { flag = false; } else { if (isBalanced(root->left) && isBalanced(root->right)) flag = true; else flag = false; } } return flag; }