515. 在每个树行中找最大值
Difficulty
Medium
Tags
二叉树
二叉树层次遍历
Star
您需要在二叉树的每一行中找到最大的值。
示例:
输入: 1 / \ 3 2 / \ \ 5 3 9 输出: [1, 3, 9]
法1 宽度优先搜索
思路
同 二叉树层次遍历相同102. 二叉树的层序遍历, 只不过是求每一层的最大值
题解
class Solution: def largestValues(self, root: TreeNode) -> List[int]: result = [] if root is None: return result queue = [] queue.append(root) while len(queue) > 0: temp_len = len(queue) max_ = queue[0].val # 先将该层首个节点值为最大值 while temp_len > 0: temp_node = queue.pop(0) temp_len -= 1 # 求得该层最大值 if temp_node.val > max_: max_ = temp_node.val # 将该层每一个节点的子节点放到队列 if temp_node.left: queue.append(temp_node.left) if temp_node.right: queue.append(temp_node.right) result.append(max_) return result