题目:
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
思路:
1.创建辅助方法,用于计算树的深度。
2.判断当前节点左右子树深度是否满足,然后递归左右子树。
代码:
/*
public class TreeNode
{
public int val;
public TreeNode left;
public TreeNode right;
public TreeNode (int x)
{
val = x;
}
}*/
using System;
class Solution
{
public bool IsBalanced_Solution(TreeNode pRoot)
{
// write code here
if(pRoot == null)
return true;
int left = treeDepth(pRoot.left);
int right = treeDepth(pRoot.right);
int p = left - right;
if(p<-1 || p>1)
return false;
return IsBalanced_Solution(pRoot.left) && IsBalanced_Solution(pRoot.right);
}
public int treeDepth(TreeNode pRoot)
{
if(pRoot == null)
return 0;
return Math.Max(treeDepth(pRoot.left)+1, treeDepth(pRoot.right)+1);
}
}