代码编织梦想

一、题目

1、题目描述

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

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

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

2、基础框架

  • C++版本给出的基础框架如下:

3、原题链接

https://leetcode.cn/problems/find-largest-value-in-each-tree-row/

二、解题报告

1、思路分析

   ( 1 ) (1) (1)层序遍历,每次将队列一整层的节点取出,将其子节点放入队列中
   ( 2 ) (2) (2)取出节点的时候记录该层的最大值

2、时间复杂度

时间复杂度为O(n),空间复杂度为O(n)

3、代码详解

class Solution {
    public List<Integer> largestValues(TreeNode root) {
        List<Integer> re = new ArrayList<>();
        if (root == null) return re;
        LinkedList<TreeNode> que = new LinkedList<>();
        que.add(root);
        while(que.size() != 0) {
            int n = que.size();
            int max = 0;
            for (int i=0; i < n; i++) {
                TreeNode p = que.getFirst();
                que.remove();
                if (i == 0) max = p.val;
                else max = Math.max(max, p.val);
                if (p.left != null) {
                    que.add(p.left);
                }
                if (p.right != null) {
                    que.add(p.right);
                }
            }
            re.add(max);
        }
        return re;
    }
}

三、本题小知识

1.java队列知识,普通队列用LinkedList,优先队列使用PriorityQueue

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44842918/article/details/129484814

leetcode 515. 在每个树行中找最大值(层次遍历)_却顾所来径的博客-爱代码爱编程

题目描述:   您需要在二叉树的每一行中找到最大的值。 示例: 输入: 1 / \ 3 2 / \ \ 5 3 9 输出: [1, 3, 9] 代码: 方法一、层次遍历(利用队列)解法 class Solution { public:

LeetCode 515. 在每个树行中找最大值(广度优先搜索)-爱代码爱编程

题目描述 您需要在二叉树的每一行中找到最大的值。 思路 详见链接 代码 class TreeNode: def __init__(self,x): self.val = x self.left = None self.right = None class Solution: def largestValues(self,root

(刷题笔记) Leetcode 515. 在每个树行中找最大值-爱代码爱编程

目录 题目解题思路代码(C++) 题目 您需要在二叉树的每一行中找到最大的值。 示例: 输入: 1 / \ 3 2 / \ \ 5 3 9 输出: [1, 3, 9] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems

Leetcode 515. 在每个树行中找最大值 C++-爱代码爱编程

Leetcode 515. 在每个树行中找最大值 题目 您需要在二叉树的每一行中找到最大的值。 示例: 输入: 1 / \ 3 2 / \ \ 5 3 9 输出: [1, 3, 9] 题解 中序遍历,记录每层的最大值。详细过程见代码

Leetcode515. 在每个树行中找最大值-爱代码爱编程

Leetcode515. 在每个树行中找最大值 题目: 您需要在二叉树的每一行中找到最大的值。 示例: 输入: 1 / \ 3 2 / \ \ 5 3 9 输出: [1, 3, 9] 题解: 顺序遍历每一行,每一行记录一次最大值即可。 ja

LeetCode515. 在每个树行中找最大值Golang版-爱代码爱编程

LeetCode515. 在每个树行中找最大值Golang版 1. 问题描述 您需要在二叉树的每一行中找到最大的值。 2. 思路 二叉树层序遍历,找到每一层的最大值 3. 代码 /** * Definition for a binary tree node. * type TreeNode struct { * Val int

【Leetcode二叉树层序遍历】515. 在每个树行中找最大值-爱代码爱编程

文章目录 Leetcode5151.问题描述2.解决方案 Leetcode515 1.问题描述 2.解决方案 没什么可说的,就每一层求个最大值,并且每一层结束后把Max放入结果集即可! class Solution { public: vector<int> largestValues(TreeNode

LeetCode 515. 在每个树行中找最大值-爱代码爱编程

层序遍历的应用:移步-LeetCode 515. 在每个树行中找最大值移步->LeetCode 104. 二叉树的最大深度移步->LeetCode 102. 二叉树的层序遍历移步->LeetCode 226. 翻转二叉树 题目链接 515. 在每个树行中找最大值 思路: 采用层序遍历,每层计算得到最大值,然后每层遍历完后加入到结果列表

leetcode515. 在每个树行中找最大值c++_sakeww的博客-爱代码爱编程

链接: 链接: leetcode515. 在每个树行中找最大值 描述,示例和提示: 代码: /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right;

leetcode515. 在每个树行中找最大值_kkkkuuga的博客-爱代码爱编程

1.题目描述: 给定一棵二叉树的根节点root,请找出该二叉树中每一层的最大值。 2.层序遍历: /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode ri

leetcode: 515. 在每个树行中找最大值_uncle_ll的博客-爱代码爱编程

515. 在每个树行中找最大值 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/find-largest-value-in-each-tree-row/ 给定一棵二叉树

leetcode二叉树系列——515.最每个树行中找最大值_十八岁讨厌java的博客-爱代码爱编程

一、题目描述: 515. 在每个树行中找最大值 难度中等265收藏分享切换为英文接收动态反馈 给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。   二.题解 对二叉树不了解的,可以先看第三部分的分析 /** * Definition for a binary tree node. * public cla

leetcode_二叉树_中等_515.在每个树行中找最大值_小城老街的博客-爱代码爱编程

目录 1.题目2.思路3.代码实现(Java) 1.题目 给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。 示例1: 输入: root = [1,3,2,5,3,null,9] 输出:

【广度优先搜索】leetcode 515. 在每个树行中找最大值_lele_ne的博客-爱代码爱编程

515. 在每个树行中找最大值 文章目录 题目描述示例1:示例2:提示 方法:广度优先搜索解题思路代码复杂度分析 题目描述 给定一棵二叉树的根节点

leetcode 515. 在每个树行中找最大值_独影月下酌酒的博客-爱代码爱编程

1.题目描述 给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。 输入: root = [1,3,2,5,3,null,9] 输出: [1,3,9] 输入: root = [

leetcode-1590. 使数组和能被 p 整除【前缀和,哈希表】-爱代码爱编程

LeetCode-1590. 使数组和能被 P 整除【前缀和,哈希表】 题目描述:解题思路一:前缀和,具体看注释。解题思路二:在遍历过程中计算前缀和解题思路三:0 题目描述: 给你一个正整数数组 nums,请

leetcode每日一题(1388. pizza with 3n slices)-爱代码爱编程

There is a pizza with 3n slices of varying size, you and your friends will take slices of pizza as follows: You

【leetcode】剑指 offer(19)-爱代码爱编程

目录 题目:剑指 Offer 36. 二叉搜索树与双向链表 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 题目:剑指 Offer 36. 二叉搜索树与双向链表 - 力扣(Leetcode) 题目的接口: /* // Definition for a Node. class Node {