每日一题——判断二叉树是否平衡,求一棵二叉树的镜像
来源:互联网 发布:淘宝服装推广方案 编辑:程序博客网 时间:2024/05/22 10:24
1,判断一棵二叉树是否平衡
一棵树平衡是指它根节点到叶子节点的最长路径与最短路径只差不超过1。
bool IsBanlance(Node* root,int& depth){ if(root == NULL) { depth = 0; return true; } int leftDepth = 0; int rightDepth = 0; if(IsBanlance(root->left,depth) == false) return false; if(IsBanlance(root->right,depth) == false) return false; depth = (leftDepth>rightDepth)?(leftDepth+1):(rightDepth+1); return abs(leftDepth-rightDepth)>2;}
2,求一棵树的镜像
递归,使得每个节点的左右子树互换位置即可。
//递归实现Node* mirr(Node* root){ if(root == NULL) return NULL; if(root->left == NULL && root->right == NULL) return NULL; swap(root->left,root->right); if(root->left) mirr(root->left); if(root->right) mirr(root->right);}
//非递归实现Node* mirr(Node* root){ if(root == NULL) return NULL; stack<Node*> sta; Node* newroot = root; sta.push(root); while(stack.size()) { Node* tmp = sta.top(); sta.pop(); if(tmp->left != NULL || tmp->right != NULL) { swap(tmp->left,tmp->right); } if(tmp->right != NULL) sta.push(tmp->right); if(tmp->left != NULL) sta.push(tmp->left); } return newroot;}
阅读全文
0 0
- 每日一题——判断二叉树是否平衡,求一棵二叉树的镜像
- 每日一题之判断一棵二叉树是否是平衡二叉树以及求一颗二叉树的镜像
- 判断一棵二叉树是否是平衡二叉树并求一颗二叉树的镜像——题集十
- 判断一棵二叉树是否是平衡二叉树/求一颗二叉树的镜像
- -判断一棵二叉树是否是平衡二叉树/求一颗二叉树的镜像
- 判断一棵二叉树是否是平衡二叉树/求一颗二叉树的镜像
- 判断一棵二叉树是否是平衡二叉树/求一颗二叉树的镜像
- 二叉树--判断一棵二叉树是否是平衡二叉树&&求一颗二叉树的镜像
- 【二叉树】判断一棵二叉树是否是平衡二叉树/求一棵二叉树的镜像/对称的二叉树
- day12之判断一棵二叉树是否是平衡二叉树+求一颗二叉树的镜像+判断一个数在二维数组中是否存在
- C++算法之 判断是否为平衡二叉树 求二叉树的镜像
- 每日一练(40) - 判断二叉树是否是一颗平衡二叉树
- 判断一颗二叉树是否平衡
- 判断一棵二叉树是否平衡
- 【每日一题-12】平衡二叉树/镜像与杨氏矩阵查找
- 每日一题(31) - 二叉树的镜像
- 求一颗二叉树的镜像 【每日一题】
- 判断一颗二叉树是否为平衡二叉树
- 感知机
- C#中out和ref之间的区别
- Android将camera获取到的YuvData在jni中转化为Mat
- basemap构建地图
- protobuf
- 每日一题——判断二叉树是否平衡,求一棵二叉树的镜像
- 方法内部类
- 小结 | 函数的调用过程(栈帧)
- 安卓工作室android studio 美化 ,设置背景图片。
- Hdu6098 Inversion(2017多校第6场)
- spring mvc基础篇(十二):综合案例一
- 8.10抽象类与接口
- CentOS下安装Python3后BeautifulSoup 版本不兼容问题解决方法
- [编程题] Fibonacci数列