首页 > 代码库 > LeetCode:Balanced Binary Tree
LeetCode:Balanced Binary Tree
要求:判断一棵树是否是平衡二叉树
Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
代码如下:
1 struct TreeNode { 2 int val; 3 TreeNode *left; 4 TreeNode *right; 5 TreeNode(int x): val(x),left(NULL), right(NULL) {} 6 }; 7 8 int maxTreeDepth(TreeNode *root) //先求树的深度 9 {10 if (NULL == root)11 return 0;12 int lval = maxTreeDepth(root->left);13 int rval = maxTreeDepth(root->right);14 return 1 + (lval > rval ? lval:rval);15 }16 bool isBalanced(TreeNode *root)//根据树的深度再来判断是否是平衡树17 {18 if(NULL == root)19 return true;20 int diff = maxTreeDepth(root->left) - maxTreeDepth(root->right);21 if (diff < -1 || diff > 1)22 return false;23 return isBalanced(root->left) && isBalanced(root->right);24 }
LeetCode:Balanced Binary Tree
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。