二叉树的最小深度 2025-08-01 作者 Y Y ~1.54K 字 本文最后编辑于 前,其中的内容可能需要更新。 二叉树的最小深度 题目 1234567891011给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量,包含根节点说明:叶子节点是指没有子节点的节点。示例 1:输入:root = [3,9,20,null,null,15,7]输出:2示例 2:输入:root = [2,null,3,null,4,null,5,null,6]输出:5 解法 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859思路:遍历每一层节点,出现不存在子节点的情况则返回深度代码: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; }}/** * @param TreeNode $root * @return Integer */function minDepth($root) { if ($root->val !== null) { $queue[] = $root; // 如果根节点存在,深度至少为1 $depth = 1; } else { return 0; } while (1) { $queue2 = []; // 遍历节点 foreach ($queue as $node) { // 子节点为空, 则当前深度是最小深度, 直接返回 if ($node->left === null && $node->right === null) { return $depth; } // 子节点不为空, 写入新数组, 在下一次循环中替换当前数组进行遍历 if ($node->left !== null) { $queue2[] = $node->left; } if ($node->right !== null) { $queue2[] = $node->right; } } $queue = $queue2; $depth++; } return $depth;} < 上一篇 下一篇 >