leetcode 110. Balanced Binary Tree
来源:互联网 发布:怎么增强手机网络信号 编辑:程序博客网 时间:2024/06/06 01:00
头文件在http://blog.csdn.net/charles1e/article/details/56479700
/*leetcode 110. Balanced Binary TreeGiven 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. 先求一颗树的辅助函数DepthMax()求解最大高度,然后对每一个节点,判断其左右子树是否平衡2. DFS.*/#include "TreeInclude.h"class Solution1 {public: bool isBalanced(TreeNode* root) { if (root == NULL) return true; if (abs(DepthMax(root->left)-DepthMax(root->right)) > 1) return false; return isBalanced(root->left) && isBalanced(root->right); } int DepthMax(TreeNode* root) { if (root == NULL) return 0; return 1 + max(DepthMax(root->left), DepthMax(root->right)); }};//DFS:至下而上class Solution {private: bool flag;public: bool isBalanced(TreeNode* root) { if (!root) return true; flag = true; DFS(root, 1); return flag; } int DFS(TreeNode* root, int depth) { if (!flag) return 0; if (!root->left && !root->right) return depth; int left = depth; int right = depth; if (root->left) left = DFS(root->left, depth + 1); if (root->right) right = DFS(root->right, depth + 1); if (abs(left - right) > 1) flag = false; return max(left, right); }};void TEST(){ Solution sol; vector<int> v{ 3,-1,20,-1,-1,15,7 }; TreeNode* root = CreateTree(v); cout << sol.isBalanced(root) << endl;}int main(){ TEST(); return 0;}
0 0
- LeetCode 110. Balanced Binary Tree
- [LeetCode]110.Balanced Binary Tree
- 【LeetCode】110.Balanced Binary Tree
- [Leetcode] 110. Balanced Binary Tree
- LeetCode --- 110. Balanced Binary Tree
- [leetcode] 110.Balanced Binary Tree
- [leetcode]110. Balanced Binary Tree
- LeetCode:110. Balanced Binary Tree
- 110. Balanced Binary Tree LeetCode
- [LeetCode]110. Balanced Binary Tree
- Leetcode 110. Balanced Binary Tree
- LeetCode 110. Balanced Binary Tree
- LeetCode *** 110. Balanced Binary Tree
- leetcode 110. Balanced Binary Tree
- LeetCode 110. Balanced Binary Tree
- LeetCode 110. Balanced Binary Tree
- #leetcode#110. Balanced Binary Tree
- leetcode-110. Balanced Binary Tree
- LintCode 178:Graph Valid Tree
- Android中Acvitity的(startActivityForResult)传值方式
- 七大设计原则
- 机器学习练习记录(3):HMM中,如果已知观察序列和产生观察序列的状态序列,如何直接进行参数估计?
- 《Java与模式》之观察者模式
- leetcode 110. Balanced Binary Tree
- Unity的Scene视图中Irradiance模式的作用
- Windows Openmp 设置线程亲缘性
- JAX-WS HandlerChain使用详解
- 2668: [cqoi2012]交换棋子
- 欧里几德及扩展欧里几德算法
- Ubuntu14.04安装cuda7.5出现login loop error解决办法
- Socket编程一实现简易的聊天功能以及文件传输
- (转)招商银行这一招,引起了各大银行的注意