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中文網其他相關文章!