新闻详情

新闻详情

首页 / 资讯中心 / 详情

DeepSeek LeetCode 199. 二叉树的右视图 Java实现

发布时间:2026/10/1 17:14:02来源:尧图网络
DeepSeek    LeetCode 199. 二叉树的右视图 Java实现
LeetCode 199. 二叉树的右视图题目描述给定一个二叉树的根节点 root想象自己站在它的右侧按照从顶部到底部的顺序返回从右侧所能看到的节点值。示例输入: [1,2,3,null,5,null,4] 输出: [1,3,4] 1 --- / \ 2 3 --- \ \ 5 4 ---解法一BFS 层序遍历推荐层序遍历每一层取每层的最后一个节点。classSolution{publicListIntegerrightSideView(TreeNoderoot){ListIntegerresnewArrayList();if(rootnull)returnres;QueueTreeNodequeuenewLinkedList();queue.offer(root);while(!queue.isEmpty()){intsizequeue.size();for(inti0;isize;i){TreeNodenodequeue.poll();// 当前层的最后一个节点就是右视图看到的节点if(isize-1){res.add(node.val);}if(node.left!null)queue.offer(node.left);if(node.right!null)queue.offer(node.right);}}returnres;}}复杂度· 时间复杂度O(n)每个节点访问一次· 空间复杂度O(n)队列最多存一层节点解法二DFS先访问右子树按「根 → 右 → 左」的顺序 DFS每个深度第一次访问到的节点即为该层最右节点。classSolution{publicListIntegerrightSideView(TreeNoderoot){ListIntegerresnewArrayList();dfs(root,0,res);returnres;}privatevoiddfs(TreeNodenode,intdepth,ListIntegerres){if(nodenull)return;// 每个深度第一次到达就是该层最右侧节点if(depthres.size()){res.add(node.val);}dfs(node.right,depth1,res);// 先右dfs(node.left,depth1,res);// 后左}}复杂度· 时间复杂度O(n)· 空间复杂度O(h)h 为树高递归栈深度两种解法对比解法 思路 优点 缺点BFS 层序遍历取每层最后一个 直观易懂 需要额外队列空间DFS 先右后左记录首次到达的深度 空间复杂度更优对平衡树而言 略微抽象关键点BFS判断 i size - 1 就能拿到每层最右节点注意 size 必须提前缓存因为循环中队列长度会变化。DFSdepth res.size() 是核心判断——当递归到新的一层时res 尚未添加该层元素此时访问的节点就是该层最右节点因为先走右子树。空树直接返回空列表。两种解法都建议掌握面试中 BFS 更容易想到DFS 则体现对递归顺序的理解。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

栈数据结构详解:从后进先出原理到函数调用栈帧与系统应用 2026/10/1 17:53:11

栈数据结构详解:从后进先出原理到函数调用栈帧与系统应用

1. 栈的根本:后进先出不是一句口号1.1 从一摞盘子理解栈:只从顶端进出的容器说句实话,一个科班出身的程序员,大学里最先接触的数据结构除了数组就是栈和队列。但很多人毕业好几年,写了不少代码,再回头看“栈…

阅读更多 →
JSP+MySQL图书销售系统:JavaWeb项目开发与部署全解析 2026/10/1 17:53:11

JSP+MySQL图书销售系统:JavaWeb项目开发与部署全解析

简介:基于JSPMySQL构建的JavaWeb图书销售管理系统(网上书店)项目源码与数据库,是经导师指导认可的高分课程设计/期末大作业方案,适合计算机相关专业学生完成期末任务、准备课程设计答辩,也适合JavaWeb学习者…

阅读更多 →
Raft共识算法驱动的分布式可靠KV存储系统设计要点 2026/10/1 17:53:11

Raft共识算法驱动的分布式可靠KV存储系统设计要点

简介:这是一份基于Raft共识算法实现的分布式可靠KV存储系统完整项目资料,主要面向计算机相关专业学生、开发者以及需要完成课程设计、毕业设计或系统实验的人群。资源整合了项目全部源码、测试文件、配置文件和详细文档,覆盖客户端、服务端、…

阅读更多 →
JSP+MySQL图书销售系统完整实战:从源码到部署的JavaWeb入门指南 2026/10/1 17:53:11

JSP+MySQL图书销售系统完整实战:从源码到部署的JavaWeb入门指南

简介:一份基于JSP与MySQL技术的JavaWeb网上书店图书销售管理系统源码及数据库,面向计算机专业正在准备期末大作业、课程设计的学生,也适合需要项目实战练习的JavaWeb初学者。压缩包中共有286个文件,整体大小约6.93MB,其…

阅读更多 →
第二次作业复盘:零售销售数据清洗与分析可视化全流程 2026/10/1 17:53:11

第二次作业复盘:零售销售数据清洗与分析可视化全流程

1. 拿到“第二次作业”,先别急着写代码第二次作业,这个标题看起来平平无奇,但我把它当成一个正经项目来对待了。原因很简单:大部分课程或培训里的第一次作业,本质上是让你熟悉环境和工具链,基本照着示例就能…

阅读更多 →
3-ansible fetch模块 2026/10/1 17:53:04

3-ansible fetch模块

ansible fetch模块用于 从远程主机拉取文件到ansible控制节点(管理机),功能与copy模块相反。 基本语法 - name: fetch file from remote hostfetch:src: /var/log/yum.logdest: /tmp/ 执行后,文件会被下载到控制节点: /tmp/xx.xx.xx.xx/var/log/yum.log 默认会按主机名…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉