1. 程式人生 > >劍指Offer系列-面試題39-2:判斷一棵樹是否為平衡二叉樹

劍指Offer系列-面試題39-2:判斷一棵樹是否為平衡二叉樹

題目:判斷一棵樹是否為平衡二叉樹

思路:根據上一題的二叉樹的深度,在遞迴過程中加上識別符號,遞迴到當前節點,判斷當前子樹是不是一個平衡二叉樹,如果不是,就把識別符號置為false,返回識別符號即可。

程式碼:

private boolean result = true;

public boolean IsBalanced_Solution(TreeNode root) {
	TreeDepth(root);
	return result;
}

public int TreeDepth(TreeNode root) {
	if (root == null) {
		return 0;
	}
	int left = TreeDepth(root.left);
	int right = TreeDepth(root.right);
	if (Math.abs(left - right) > 1) {
		result = false;
	}
	return (left > right) ? (left + 1) : (right + 1);
}