平衡二叉树 2025-08-01 作者 Y Y 1183 字 本文最后编辑于 前,其中的内容可能需要更新。 平衡二叉树 题目 12345678910111213给定一个二叉树,判断它是否是平衡二叉树,平衡二叉树,指的是一颗树的左右子树深度不能大于1示例 1:输入:root = [3,9,20,null,null,15,7]输出:true示例 2:输入:root = [1,2,2,3,3,null,null,4,4]输出:false示例 3:输入:root = []输出:true 解法 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556思路:获取二叉树的左右子树深度,出现深度>1,则不为平衡二叉树代码:class TreeNode{ public $val = null; /** * @var TreeNode|null */ public $left = null; /** * @var TreeNode|null */ public $right = null; function __construct($val = 0, $left = null, $right = null) { $this->val = $val; $this->left = $left; $this->right = $right; }}private $bo = true;/** * @param TreeNode $root * * @return Boolean */function isBalanced($root){ $this->maxDepth($root); return $this->bo;}private function maxDepth($node){ if (!$node) { return 0; } // 递归获取左右子树的深度 $l = $this->maxDepth($node->left); $r = $this->maxDepth($node->right); if (abs($l - $r) > 1) { // 标记为非平衡二叉树 $this->bo = false; } // 深度加1 return max($l, $r) + 1;} < 上一篇 下一篇 >