博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]Balanced Binary Tree
阅读量:4150 次
发布时间:2019-05-25

本文共 1640 字,大约阅读时间需要 5 分钟。

struct TreeNode {	int val;	TreeNode *left;	TreeNode *right;	TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution {	//check if it is a balanced tree	//so we check the diff between the max height of each branch	//all compare can be done along the way down to calculate max height public:	int CheckHeight(TreeNode* root, bool& ans)	{		if(!root || !ans)//if is is not a balance tree already, we just return			return 0;		int leftHeight = CheckHeight(root->left, ans);		int rightHeight = CheckHeight(root->right, ans);		if(abs(leftHeight-rightHeight) > 1)			ans = false;		return max(leftHeight, rightHeight)+1;	}    bool isBalanced(TreeNode *root) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        //get the height of each subtree		bool ans = true;		CheckHeight(root, ans);		return ans;    }};

second time

/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    int isBalancedUtil(TreeNode* root, bool& isValid)    {        if(root == NULL) return 0;        if(!isValid) return -1;        int leftHeight = isBalancedUtil(root->left, isValid);        int rightHeight = isBalancedUtil(root->right, isValid);        if(abs(leftHeight-rightHeight) > 1) isValid = false;        return max(leftHeight, rightHeight)+1;    }    bool isBalanced(TreeNode *root) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        bool ans = true;        isBalancedUtil(root, ans);        return ans;    }};

转载地址:http://zoxti.baihongyu.com/

你可能感兴趣的文章
jQuery1.9(动画效果)学习之—— jQuery.fx.off
查看>>
jQuery1.9(动画效果)学习之——.queue()
查看>>
HTML5学习之——概念篇
查看>>
HTML5学习之——HTML 5 视频
查看>>
HTML5学习之——HTML 5 Video + DOM
查看>>
HTML5学习之——HTML 5 音频
查看>>
HTML5学习之——HTML 5 拖放
查看>>
HTML5学习之——HTML 5 Canvas vs. SVG
查看>>
HTML5学习之——HTML5 地理定位
查看>>
HTML5学习之——HTML 5 Web 存储
查看>>
HTML5学习之——HTML 5 应用程序缓存
查看>>
HTML5学习之——HTML 5 Web Workers
查看>>
HTML5学习之——HTML 5 Canvas
查看>>
HTML5学习之——HTML5 内联 SVG
查看>>
HTML5学习之——HTML 5 服务器发送事件
查看>>
SVG学习之——HTML 页面中的 SVG
查看>>
SVG 形状学习之——SVG 矩形<rect>
查看>>
SVG 形状学习之——SVG圆形
查看>>
SVG 形状学习之——SVG椭圆 <ellipse>
查看>>
SVG 形状学习之——SVG 线<line>
查看>>