Java日常练习题,每天进步一点点(57)

题目:求一个二叉树的右下角结点的值。

思路

先按照层次遍历的方式,遍历整棵树,将每一层最后一个结点的值保存下来,最后返回最后一层的最后一个结点的值即可。

代码实现

private int lastVal = 0;
public int findBottomLeftValue(TreeNode root) {
    // 用队列保存待遍历的结点
    Queue<TreeNode> queue = new LinkedList<>();
    queue.offer(root);
    while(!queue.isEmpty()) {
        int size = queue.size();
        lastVal = queue.peek().val;
        for(int i=0; i<size; i++) {
            TreeNode node = queue.poll();
            if(node.right != null) {
                queue.offer(node.right);
            }
            if(node.left != null) {
                queue.offer(node.left);
            }
        }
    }
    return lastVal;
}

示例说明

以如下的二叉树为例:

    1
   / \
  2   3
 /   / \
4   5   6

按照层次遍历的方式,遍历完整棵树的顺序为1->2->3->4->5->6。在遍历到最后一层时,由于每层的结点都是从左到右遍历的,所以在遍历到这一层时,最后一个结点一定是最右边的结点,即结点6。因此,最后输出的结果为6。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java日常练习题,每天进步一点点(57) - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • Mybatis中注入执行sql查询、更新、新增及建表语句案例代码

    让我来为你讲解Mybatis中注入执行SQL查询、更新、新增及建表语句的完整攻略。 什么是Mybatis? Mybatis是一个Java持久化框架,它可以帮助我们将Java对象与关系型数据库之间建立映射关系,同时提供了大量的查询、更新、新增和删除数据的API。 Mybatis支持多种ORM(对象关系映射)方式,其中比较常用的是注解和XML配置文件。本文将主要…

    Java 2023年5月20日
    00
  • java中类和对象的知识点总结

    Java 是一种面向对象的编程语言,类和对象是其中最重要的概念之一,下面是 Java 中类和对象的知识点总结的完整攻略。 类与对象的基本概念 在 Java 中,类是一种抽象的概念,其用于描述某一类事物的共同属性和行为。而对象则是实际存在的、具有一定状态和行为的个体,是类的一个实例化结果。 定义类 在 Java 中,定义一个类需要使用 class 关键字,类名…

    Java 2023年5月26日
    00
  • 关于Java中数组切片的几种方法(获取数组元素)

    首先来讲一下什么是数组切片。在Java中,数组是一组相同类型的数据所组成的有序集合。数组切片指的是从一个数组中截取一个区间来创建一个新的数组。 获取数组元素,即获取数组中的一部分元素。下面将介绍几种Java中获取数组元素的方法。 1. 直接用”[]”操作符 可以使用下标操作符”[]”来获取数组中的某个位置上的元素,例如: int[] arr = {1, 2,…

    Java 2023年5月26日
    00
  • SpringBoot实现评论回复功能(数据库设计)

    在Spring Boot中实现评论回复功能需要设计相应的数据库结构。以下是一个简单的评论回复数据库设计示例: 数据库设计 评论表 字段名 类型 描述 id bigint 主键 content varchar(255) 评论内容 user_id bigint 用户ID create_time datetime 创建时间 回复表 字段名 类型 描述 id big…

    Java 2023年5月14日
    00
  • SpringMVC数据响应详细介绍

    以下是关于“SpringMVC数据响应详细介绍”的完整攻略,其中包含两个示例。 SpringMVC数据响应详细介绍 在SpringMVC中,我们可以使用多种方式响应数据给客户端。本文将介绍常用的三种方式:ModelAndView、@ResponseBody和HttpServletResponse。 ModelAndView ModelAndView是Spri…

    Java 2023年5月16日
    00
  • 基于Java实现修改图片分辨率示例代码

    下面就是详细的攻略: 1. 概述 本文将为大家介绍如何用Java代码实现修改图片分辨率的功能,主要文本内容包括:开发环境准备、示例代码说明、代码分析以及实例应用。 2. 开发环境准备 Java实现修改图片分辨率的功能,需要用到ImageIO和Awt工具包,所以需要在应用程序中引用这两个工具包。以下是开发所需的环境: JDK 1.8及以上版本 Eclipse开…

    Java 2023年5月19日
    00
  • SpringMVC HttpMessageConverter报文信息转换器

    SpringMVC中的HttpMessageConverter负责将请求报文或响应结果转换成Java对象或字符串,以便更方便地处理HTTP请求与响应。在使用SpringMVC时,理解并熟练使用HttpMessageConverter是必不可少的。 下面是使用HttpMessageConverter进行报文信息转换的完整攻略: 1. 什么是HttpMessag…

    Java 2023年5月26日
    00
  • Java Filter 过滤器详细介绍及实例代码

    接下来我将详细介绍Java Filter 过滤器的概念、作用、使用方法及实例代码。 一、什么是Java Filter? Java Filter 是Java技术中的一种组件,是Servlet规范中的一部分,用于在HTTP请求到达Servlet之前或响应离开Servlet之前,拦截并处理请求或响应。它可以在Servlet容器中预处理请求、捕获请求并响应,然后将请…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部