龙空技术网

「LeetCode每日一题」 515. 在每个树行中找最大值

七水刷Python 147

前言:

而今小伙伴们对“python编程求最大值”都比较关心,小伙伴们都需要学习一些“python编程求最大值”的相关知识。那么小编同时在网摘上搜集了一些对于“python编程求最大值””的相关知识,希望大家能喜欢,各位老铁们快快来了解一下吧!

@[TOC]([LeetCode解题报告] 515. 在每个树行中找最大值 )

一、 题目1. 题目描述1. 在每个树行中找最大值

难度:中等

给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。

示例1:

输入: root = [1,3,2,5,3,null,9]输出: [1,3,9]

示例2:

输入: root = [1,2,3]输出: [1,3]

提示:

• 二叉树的节点个数的范围是 [0,104]• -231 <= Node.val <= 231 - 12. 原题链接

链接: 515. 在每个树行中找最大值

二、 解题报告1. 思路分析• 今天的题目十分简单,对二叉树进行层序遍历即可。• 咱们用的是python,因此在每层创建新的队列,记录一个最大值,最后添加进ans就可以了。• 啪的一下,cv很快啊。2. 复杂度分析

最坏时间复杂度*O(n)*,n是树上节点数量。

3. 代码实现

层序遍历

class Solution:    def largestValues(self, root: Optional[TreeNode]) -> List[int]:        if not root :            return []        ans = []        q = deque([root])        while q:            new_q = deque()            m = -1e13            while q:                root = q.popleft()                m = max(m,root.val)                if root.left:                    new_q.append(root.left)                if root.right:                    new_q.append(root.right)            q = new_q            ans.append(m)        return ans
三、 本题小结1. 层序遍历模板。

标签: #python编程求最大值