122 解二叉树的右视图的两种方式

这篇具有很好参考价值的文章主要介绍了122 解二叉树的右视图的两种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述:给定一颗二叉树,想想自己站在他的右侧,按照从底部到底部的顺序,饭后从右侧所能看到的节点值。

BFS方式求解,每一层只保留最后一个节点即可。

public List<TreeNode>rightView(TreeNode root)
{
List<TreeNode>list=new LinkedList<>();
Queue<TreeNode>queue=new LinkedList<>();
queue.add(root);
while(!queue.isEmpty())
{
int queueSize=queue.size();
TreeNode lastNode=null;
for(int i=0;i<queueSize;i++)
{
lastNode=queue.poll();
}
list.add(lastNode);
}
return list;
}

DFS方法求解:采用先序遍历的方式,不过在访问玩当前结点之后,需要下一个递归是先从右节点开始,记录所有的节点于链表中,并取等于二叉树层数的前几个元素作为返回。
int maxLevel=1;文章来源地址https://www.toymoban.com/news/detail-807539.html

public void dfs(TreeNode root,List<TreeNode>list,int level)
{
if(root==null){return;}
maxLevel=Math.max(level,maxLevel);
list.add(root);
dfs(root.right,list,level+1);
dfs(root.left.lust,level+1);
}
public List<TreeNode>Dfs(TreeNode root)
{
List<TreeNode>list=new LinkedList<>();
List<TreeNode>res=new LinkedList<>();
dfs(root,list,1);
for(int i=0;i<maxLevel;i++)
{
res.add(list.get(i));
}
​​​​​​​return res;

}

到了这里,关于122 解二叉树的右视图的两种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 代码随想录二刷 |二叉树 | 二叉树的右视图

    199.二叉树的右视图 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4] 示例 2: 输入: [1,null,3] 输出: [1,3] 示例 3: 输入: [] 输出: [] 提示: 二叉树的节点个数的范围是 [0,1

    2024年02月04日
    浏览(57)
  • 【LeetCode-中等题】199. 二叉树的右视图

    根 右 左 的顺序 取每层第一个被访问到的节点(depth == list.size())

    2024年02月10日
    浏览(34)
  • leetcode199. 二叉树的右视图(java)

    来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/binary-tree-right-side-view 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4] 示例 2: 输入: [1,null,3] 输出: [1,3] 示例 3: 输入

    2024年02月09日
    浏览(31)
  • 【LeetCode75】第三十九题 二叉树的右视图

    目录 题目: 示例: 分析: 代码: 题目给我们一棵二叉树,让我们返回站在二叉树右边从上到下看到的节点。 那实际上就是要我们对二叉树进行层序遍历,然后把每层的最右边的一个节点拿出来。 所以问题实际上就是要我们对二叉树进行层序遍历,所以我们这边介绍两种层

    2024年02月10日
    浏览(43)
  • 二叉树层次遍历的两种写法

    2024年02月10日
    浏览(45)
  • 二叉树创建的两种方法(图解)

            目录 一、括号表示法 (1)括号表示法构建二叉树的算法思路及算法实现 (2)图解括号表示法构建二叉树 (3)测试程序  二、扩展二叉树 (1)扩展二叉树构建二叉树的算法思路及算法实现 (2)测试程序         二叉树的创建方法有很多种,在这里我介绍两种

    2024年02月06日
    浏览(52)
  • 二叉树的最大深度和最小深度(两种方法:递归+迭代)

    二叉树的最大深度:   二叉树的最小深度: 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。  输入:root = [3,9,20,null,null,15,7] 输出:2  

    2024年02月15日
    浏览(36)
  • 二叉树的概念|满二叉树与完全二叉树|二叉树的性质|二叉树的存储结构

    在数据结构中树的用途其实并不大,用得更多的其实是二叉树。所以在本章我们将详细讲解二叉树。 一颗二叉树是结点的一个 有限集合 ,该集合: 或者为空 或者由一个根节点加上两颗(互不相交)别称为左子树和右子树的二叉树组成 如图我们可知, 二叉树的特点: 二叉

    2024年01月21日
    浏览(41)
  • Mybatis查树的两种写法

    Mybatis查树必须会,它有两种写法: 1、联表查询。只访问一次数据库。 2、递归查询。访问多次数据库。 表结构: mapper: xxMapper.xml 这种写法,注意collection里面的字段不能和外面的相同,所以这里取了别名region_name2,但是属性是可以重复的。 像这种树的,要求的字段返回不会

    2024年02月06日
    浏览(41)
  • 【二叉树part01】| 二叉树的递归遍历、二叉树的迭代遍历、二叉树的统一迭代遍历

    目录 ✿二叉树的递归遍历❀ ☞LeetCode144.前序遍历 ☞LeetCode145.二叉树的后序遍历  ☞LeetCode94.二叉树的中序遍历  ✿二叉树的迭代遍历❀  ☞LeetCode144.前序遍历  ☞LeetCode145.二叉树的后序遍历   ☞LeetCode94.二叉树的中序遍历  ✿二叉树的统一迭代遍历❀   ☞LeetCode144.前序遍

    2024年02月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包