515。找到每行树中的最大值
难度:中等
主题:树、深度优先搜索、广度优先搜索、二叉树
给定二叉树的根,返回树中每一行中最大值的数组(0索引)。
示例1:
示例2:
约束:
解决方案:
问题“查找每个树行中的最大值”需要识别二叉树的每个级别(行)中存在的最大值。给定一棵二叉树,目标是逐行遍历树并收集每一行的最大值。这个问题涉及基本的树遍历技术,例如广度优先搜索(BFS)或深度优先搜索(DFS)。
查找每行中最大值的最直接方法是使用 BFS:
或者,也可以使用DFS:
让我们用 PHP 实现这个解决方案:515。找到每行树中的最大值
<?php // Definition for a binary tree node. class TreeNode { public $val = null; public $left = 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 largestValues($root) { ... ... ... /** * go to ./solution.php */ } // Example usage: $root = new TreeNode(1); $root->left = new TreeNode(3); $root->right = new TreeNode(2); $root->left->left = new TreeNode(5); $root->left->right = new TreeNode(3); $root->right->right = new TreeNode(9); print_r(largestValues($root)); // Output: [1, 3, 9] ?>
输入:root = [1,3,2,5,3,null,9]
输出:[1,3,9].
这种基于 BFS 的解决方案以线性时间复杂度有效计算每个树行中的最大值。它可以有效地处理大树、负值和空树等边缘情况。
联系链接
如果您发现本系列有帮助,请考虑在 GitHub 上给 存储库 一个星号或在您最喜欢的社交网络上分享该帖子?。您的支持对我来说意义重大!
如果您想要更多类似的有用内容,请随时关注我:
以上是。查找每个树行中的最大值的详细内容。更多信息请关注PHP中文网其他相关文章!