判断一棵树是否是平衡二叉树(leetcode题目 110)

平衡二叉树就是对每一个节点而言,高度差在1以内(包括1)。所以我们只需要求得每棵子树高度,然后判断是否合理即可。

public static class TreeNode {
		int val;
		TreeNode left;
		TreeNode right;

		TreeNode(int x) {
			val = x;
		}
	}

	public boolean isBalanced(TreeNode root) {
		//根节点为空,当前树为平衡二叉树
		if(root==null)
			return true;
		
		return Math.abs(getHigh(root.left)-getHigh(root.right))<2
				&&isBalanced(root.left)&&isBalanced(root.right);
	}
	
	//获取一棵树的高度
	public int getHigh(TreeNode root){
		if(root==null){
			return 0;
		}
		
		return 1+Math.max(getHigh(root.left), getHigh(root.right));
	}
发布了48 篇原创文章 · 获赞 0 · 访问量 707

猜你喜欢

转载自blog.csdn.net/qq_36360463/article/details/104341073
今日推荐