LeetCode Algorithm 剑指 Offer 55 - II. 平衡二叉树
生活随笔
收集整理的這篇文章主要介紹了
LeetCode Algorithm 剑指 Offer 55 - II. 平衡二叉树
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
55 - II. 平衡二叉樹
Ideas
這題直接扣平衡二叉樹的定義就可以了,需要寫一個(gè)輔助函數(shù)用來計(jì)算二叉樹的高度,然后計(jì)算根節(jié)點(diǎn)左右子樹的高度差,滿足深度相差不超過1,那么它就是一棵平衡二叉樹。
Code
C++
class Solution { public:int get_height(TreeNode* node) {if (node == NULL) {return 0;} else {return max(get_height(node->left), get_height(node->right)) + 1;}}bool isBalanced(TreeNode* root) {if (root == NULL) {return true;}int left_height = get_height(root->left);int right_height = get_height(root->right);return abs(left_height - right_height) < 2 && isBalanced(root->left) && isBalanced(root->right) ? true : false;} };極限壓縮版:
class Solution { public:int get_height(TreeNode* node) {return node == NULL ? 0 : max(get_height(node->left), get_height(node->right)) + 1;}bool isBalanced(TreeNode* root) {return root == NULL ? true : abs(get_height(root->left) - get_height(root->right)) < 2 && isBalanced(root->left) && isBalanced(root->right) ? true : false;} };總結(jié)
以上是生活随笔為你收集整理的LeetCode Algorithm 剑指 Offer 55 - II. 平衡二叉树的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode Algorithm 7
- 下一篇: LeetCode Algorithm 剑