剑指offer 39---求二叉树的深度 && 输入一颗二叉树的根节点,判断该树是不是平衡二叉树
来源:互联网 发布:软件使用说明怎么写 编辑:程序博客网 时间:2024/05/21 09:17
求二叉树的深度
思路:
分别递归左右子树,深度=左右子树中大的一个+1
/*struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}};*/class Solution {public: int TreeDepth(TreeNode* pRoot) { if(pRoot==NULL) { return 0; } int leftDepth=TreeDepth(pRoot->left); int rightDepth=TreeDepth(pRoot->right); return leftDepth>rightDepth?leftDepth+1:rightDepth+1; }};
输入一颗二叉树的根节点,判断该树是不是平衡二叉树
思路:
递归每一层都分别算出左右子树的高度,比较,看是否平衡
class Solution {public: bool IsBalanced_Solution(TreeNode* pRoot) { //判断平衡,比较高度 if(pRoot==NULL) { return true; //空树是平衡的二叉树 } int leftDep=TreeDepth(pRoot->left); int rightDep=TreeDepth(pRoot->right); int dif=leftDep-rightDep; if(dif>1||dif<-1) { return false; } return IsBalanced_Solution(pRoot->left)&&IsBalanced_Solution(pRoot->right); } int TreeDepth(TreeNode* pRoot) { if(pRoot==NULL) { return 0; } int leftDepth=TreeDepth(pRoot->left); int rightDepth=TreeDepth(pRoot->right); return leftDepth>rightDepth?leftDepth+1:rightDepth+1; }};
阅读全文
1 2
- 剑指offer 39---求二叉树的深度 && 输入一颗二叉树的根节点,判断该树是不是平衡二叉树
- 输入一颗二叉树的根节点,判断该树是不是平衡二叉树
- 题目:输入一棵二叉树的根结点,判断该树是不是平衡二叉树
- 求二叉树的深度,判断该树是不是平衡二叉树
- 剑指offer 输入一棵二叉树,判断该二叉树是否是平衡二叉树。
- 剑指offer面试题 39 二叉树的深度和判断是不是平衡树
- 输入一颗二叉树的根节点,求该树的深度
- 剑指offer 39-二叉树的深度 判断二叉树是否为平衡二叉树
- 剑指Offer 39 二叉树的深度+平衡二叉树
- 剑指offer:判断二叉树是不是平衡二叉树
- 剑指offer面试题之判断一颗二叉树是不是平衡二叉树
- 【面试题】剑指Offer-39-求二叉树的深度和判断一颗树是否为平衡二叉树
- 剑指offer 面试题39 求二叉树深度|判断是否为平衡二叉树
- 剑指offer 面试题39—二叉树的深度vs平衡二叉树判断
- 剑指Offer 39题 二叉树的深度 && 判断平衡二叉树 Java版
- 输入一棵二叉树,求该树的深度
- 输入一棵二叉树,求该树的深度
- 剑指Offer: 二叉树的深度、平衡二叉树
- 系统服务的控制
- CF
- Geth多台电脑搭建集群网络
- 互联网业务场景下消息队列架构
- 实现了一个AOI模块
- 剑指offer 39---求二叉树的深度 && 输入一颗二叉树的根节点,判断该树是不是平衡二叉树
- 648. Replace Words
- CodeForces
- 39. Combination Sum I && II
- find the mincost rout
- HDU 4960 Another OCD Patient (dp)
- Echarts学习之路 —— echarts介绍
- trait特性
- std::priority_queue 优先队列