leetcode 110 Balanced Binary Tree
判断是否平衡二叉树。
bool isBalanced(TreeNode* root) { if (root == NULL) return true; return getDepth(root)?true:false; } int getDepth(TreeNode* n) { if (n->left == NULL && n->right == NULL) return 1; if (!n->left || !n->right) { if (n->left && n->left->left == NULL && n->left->right == NULL || n->right && n->right->left == NULL && n->right->right == NULL) return 2; return 0; } int l = getDepth(n->left); int r = getDepth(n->right); if (!l || !r) return 0; return abs(r - l) > 1?0:1 + max(l, r); }
中间多了个判断,剪枝。
【本文章出自博客园willaty,转载请注明作者出处,误差欢迎指出~】