本文主要是介绍数据结构--力扣104,110 二叉树相关(C,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.力扣104。二叉树的最大深度-. - 力扣(LeetCode)
2.力扣110。平衡二叉树->. - 力扣(LeetCode)
1.
叶子结点 指:没有子节点的节点
思路:
求其 左子树和右子树的最大深度,返回其中最大值即可
代码实现:
int maxDepth(struct TreeNode* root)
{if(root==NULL)return 0;
int rightDepth=maxDepth(root->right);
int leftDepth=maxDepth(root->left);
return rightDepth>leftDepth?rightDepth+1:leftDepth+1;
}
2.
左子树和右子树 都是平衡二叉树。
左右子树 高度之差的绝对值 不超过1。
代码实现:
int maxDepth(struct TreeNode* root)
{if(root==NULL)return 0;
int rightDepth=maxDepth(root->right);
int leftDepth=maxDepth(root->left);
return rightDepth>leftDepth?rightDepth+1:leftDepth+1;
}bool isBalanced(struct TreeNode* root)
{if(root==NULL)return true;int leftDepth=maxDepth(root->left);int rightDepth=maxDepth(root->right);return abs(leftDepth-rightDepth)<2 //绝对值&&isBalanced(root->left)&&isBalanced(root->right);
}
感谢观看
这篇关于数据结构--力扣104,110 二叉树相关(C的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!