leetcode 110.平衡二叉樹
阿新 • • 發佈:2018-12-11
在第104題中,maxdepth函式實際上遍歷了二叉樹中每個節點的左右子樹的高度,對其稍加修改,當檢查到兩子樹高度差大於1時返回一個特定異常值即可。
bool isBalanced(TreeNode *root) { if (root == nullptr) { return true; } int a = maxDepth_extern(root); if (a == -1) { return false; } return true; } int maxDepth_extern(TreeNode *root) { if (root == nullptr) { return 0; } int left_depth = 1 + maxDepth_extern(root->left); int right_depth = 1 + maxDepth_extern(root->right); if (left_depth == 0 || right_depth == 0) { return -1; } if (abs(right_depth - left_depth) >= 2) { return -1; } return left_depth >= right_depth ? left_depth : right_depth; }