zoukankan      html  css  js  c++  java
  • [leetcode]Balanced Binary Tree

    问题描写叙述:

    Given 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 ofevery node never differ by more than 1.




    代码:

    class Solution {  //c++
    public:
    	int getHigh(TreeNode * root, bool & isBalanc)
    	{
    		if(root->left == NULL && root->right == NULL)
    			return 1;
    		int lmin = 0;
    		int rmin = 0;
    
    		bool lbalence = true;
    		bool rbalence = true;
    		if(root->left != NULL)
    			lmin = getHigh(root->left,lbalence);
    		if(root->right != NULL)
    			rmin = getHigh(root->right, rbalence);
    
    		if(!lbalence || !rbalence || abs(lmin - rmin) >1)
    			isBalanc = false;
    		int high = 1+ ((lmin > rmin)?lmin:rmin);  //attention: should add () for ?:     i make a fault  here
    		return high;
    	}
    	bool isBalanced(TreeNode *root) {
    		if (root == NULL)
    			return true;
            		
    		bool isBalanc = true;
    		getHigh(root, isBalanc);		
    
    		return isBalanc;
    
    	}
    };



  • 相关阅读:
    20188477 编程作业
    原型设计
    案例分析
    编程作业
    阅读任务
    准备工作
    原型设计作业
    案例分析作业
    编程作业
    阅读任务
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4078020.html
Copyright © 2011-2022 走看看