剑指offer: 平衡二叉树

来源:互联网 发布:大数据时时彩极限方案 编辑:程序博客网 时间:2024/05/05 12:52

题目:

输入一棵二叉树,判断该二叉树是否是平衡二叉树。

思路:

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);    }}


0 0
原创粉丝点击