LeetCode(24)-Balanced Binary Tree

来源:互联网 发布:ubuntu apt get jdk 编辑:程序博客网 时间:2024/06/06 21:40

题目:

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

思路:

  • 题目的大意是【判断一个二叉树是不是平衡二叉树
  • 首先了解平衡二叉树的概念:只有根节点是,或者左右节点的深度只差不大于1
  • 因为二叉树本身是一个递归的结构,所以二叉树的好多问题使可以用递归解决的,考虑root和root.left以及root.right的关系

代码:

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public boolean isBalanced(TreeNode root) {        if(root == null){            return true;        }        if(Math.abs(depth(root.left)-depth(root.right)) > 1){            return false;        }        return isBalanced(root.left)&&isBalanced(root.right);    }    public int depth(TreeNode root){        if(root == null){            return 0;        }        return 1+Math.max(depth(root.left),depth(root.right));    }}
0 0
原创粉丝点击