算法-平衡二叉树详解编程语言
2023-06-13 09:20:44 时间
首先要理解平衡二叉树的定义
同时有两个返回值的处理方法,这里是:是否为平衡二叉树、树的深度。记录树的深度可以避免在每个结点都统计树的深度,减小复杂度。
#include iostream
#include vector
#include algorithm
using namespace std;
struct TreeNode{
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
class Solution{
public:
bool IsBalanced_Solution(TreeNode* pRoot){
int depth;
return IsBalanced_Solution(pRoot, depth);
}
bool IsBalanced_Solution(TreeNode* pRoot, int depth){
if(pRoot == NULL){
depth = 0;
return true;
}
int depthLeft;
int depthRight;
bool ansLeft = IsBalanced_Solution(pRoot- left, depthLeft);
if(ansLeft == false)
return false;
bool ansRight = IsBalanced_Solution(pRoot- right, depthRight);
if(ansRight == false)
return false;
depth = max(depthLeft, depthRight) + 1;
return abs(depthLeft-depthRight)
}
int main()
return 0;
}
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/15268.html
cgo相关文章
- 【NLP基础】英文关键词抽取RAKE算法
- ☆打卡算法☆LeetCode 226. 翻转二叉树 算法解析
- 145. 二叉树的后序遍历
- 二叉树性质盘点
- 二叉树的性质及其创建
- TreeMap数据结构之排序二叉树
- 剑指offer No.57 二叉树的下一个结点
- 二叉树前序遍历详解[通俗易懂]
- 二叉树中序遍历(非递归)算法实现–C语言「建议收藏」
- 前端工程师leetcode算法面试必备-二叉树深度广度遍历
- 二叉树、队列、栈、广义表(二)数据结构与算法(十八)
- 前端工程师leetcode算法之二叉树的构造和遍历
- Java数据结构和算法(十)——二叉树详解编程语言
- 算法-二叉树的镜像详解编程语言
- 算法-序列化二叉树详解编程语言
- 算法练习之相同的树,对称二叉树详解编程语言
- Oracle 二叉树遍历算法优雅解决复杂问题(oracle 二叉树遍历)
- Oracle 二叉树算法优化数据访问速度(oracle 二叉树算法)
- 二叉树前序遍历的非递归算法