加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
IsBalancedTree.php 873 Bytes
一键复制 编辑 原始数据 按行查看 历史
star 提交于 2019-01-02 15:09 . 39-平衡二叉树
<?php
/**
* 输入一棵二叉树,判断该二叉树是否是平衡二叉树。
* 后序遍历,然后记录每个节点的深度,然后判断是否平衡
*/
class TreeNode{
public $val;
public $left = null;
public $right = null;
public function __construct($val){
$this->val = $val;
}
}
function isBalance($root)
{
$depth = 0;
return isBalanced($root) != -1;
}
function isBalanced($root)
{
if ($root == null) {
return 0;
}
$left = isBalanced($root->left);
if ($left == -1)
return -1;
$right = isBalanced($root->right);
if ($right == -1)
return -1;
return abs($right - $left) > 1 ? -1 : 1 + max($right, $left);
}
$node = new TreeNode(1);
$node->right = new TreeNode(2);
$node->left = new TreeNode(3);
$node->right->left = new TreeNode(4);
$node->right->left->left = new TreeNode(5);
var_dump(isBalance($node));
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化