思路:
1、按照层级来遍历。
2、取每一层的第一个有效节点,如果是右视图的话就是最后一个有效节点。

import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.zyblue.fastim.common.algorithm.TreeNode;import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/*** 树的左视图* @Author : BlueSky 2019.12.23*        4*     2     6*   1  3  5  7* 0            8** -----------> 4,2,1,0**        4*     2     6*   1  3  5  7*              8** -----------> 4,2,1,8*/
public class LeftViewTree {public void foreach(TreeNode treeNode){LinkedList<TreeNode> linkedList = new LinkedList<TreeNode>();linkedList.add(treeNode);List<Integer> res = Lists.newArrayList();while (!linkedList.isEmpty()){// 获取这一层所有大小int size = linkedList.size();System.out.println("size:"+size);// 第一个节点就是有效节点res.add(linkedList.peekFirst().getVal());// 遍历这一层节点for(int i = 0;i<size;i++){TreeNode node = linkedList.poll();if(node.getLeft() != null){linkedList.add(node.getLeft());}if(node.getRight() != null){linkedList.add(node.getRight());}}}// 结果:res:[4,2,1,8]System.out.println("res:"+ JSONObject.toJSONString(res));}
}

数据结构和算法之二叉树左视图相关推荐

  1. 常考数据结构与算法:输出二叉树的右视图

    题目描述 请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图 上图树的右视图为:{1,4,3,7} 做此题之前可以先做下面3道题: 1. 常考数据结构与算法:求二叉树的层序遍历 2.常 ...

  2. 数据结构与算法之二叉树的序列化和反序列化及判断一棵树是否为平衡二叉树

    数据结构与算法之二叉树的序列化和反序列化及判断一棵树是否为平衡而二叉树 目录 二叉树的序列化和反序列化 判断一棵树是否为平衡而二叉树 1. 二叉树的序列化和反序列化 1. 递归版本序列化和反序列化 代 ...

  3. 数据结构与算法之二叉树的先序遍历,中序遍历,后序遍历

    数据结构与算法之二叉树的先序遍历,中序遍历,后移遍历 目录 实现二叉树的先序,中序,后序遍历,包括递归方式和非递归方式 在二叉树中找到一个节点的后继节点 1. 实现二叉树的先序,中序,后序遍历,包括递 ...

  4. 数据结构与算法之-----二叉树(一)

    [ 写在前面的话:本专栏的主要内容:数据结构与算法. 1.对于初识数据结构的小伙伴们,鉴于后面的数据结构的构建会使用到专栏前面的内容,包括具体数据结构的应用,所使用到的数据结构,也是自己构建的,未使用 ...

  5. 数据结构与算法 3:二叉树,遍历,创建,释放,拷贝,求高度,面试,线索树

    [本文谢绝转载,原文来自http://990487026.blog.51cto.com] 树 数据结构与算法 3:二叉树,遍历,创建,释放,拷贝,求高度,面试,线索树二叉树的创建,关系建立二叉树的创建 ...

  6. 数据结构与算法:二叉树专题

    数据结构与算法:二叉树专题 前言 前提条件 基础知识 二叉树链式存储结构 二叉树中序遍历 二叉树层序遍历 常见编程题 把一个有序整数数组放到二叉树中 逐层打印二叉树结点数据 求一棵二叉树的最大子树和 ...

  7. 数据结构与算法练习-二叉树中序遍历

    python数据结构与算法练习-二叉树中序遍历 二叉树中序遍历 思路 python实现 二叉树中序遍历 链接: link. 给定一个二叉树的根节点 root ,返回它的 中序 遍历. 样例 输入:ro ...

  8. 常考数据结构与算法:求二叉树的层序遍历

    题目描述 给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历) 例如: 给定的二叉树是{3,9,20,#,#,15,7}, 该二叉树层序遍历的结果是 [ [3], [9,20], ...

  9. 数据结构与算法--重建二叉树

    二叉树 树在实际编程中经常遇到地一种数据结构.上一篇中我们解释了二叉树及其原理,从中可以知道,树地操作会涉及到很多指针地操作,我们一般遇到地树相关地问题差不多都是二叉树.二叉树最重要地莫过于遍历,即按 ...

最新文章

  1. 如何恢复Windows“消失”的磁盘分区
  2. 题目:三个售票员 卖出 30张票 || 多线程编程的企业级套路+模板||synchronized与Lock的区别
  3. SQL Server : 禁止在SQL Server中生成用户实例
  4. 使用Drools跟踪输出
  5. 安卓案例:列表控件上拉加载更多
  6. 两岁的微信小程序,创造超 5000 亿的价值
  7. Android TV开发总结(五)TV上屏幕适配总结
  8. java jar 是什么_java中的jar文件是什么
  9. 在IBM AIX p750小机上为Oracle扩展逻辑卷-视频分享
  10. Win7缺失dll文件如何修复?Win7计算机丢失dll文件怎么办
  11. Maven – 父子 POM 示例
  12. python微信定时发消息_python实现给微信指定好友定时发送消息
  13. 王者苹果服务器转安卓系统,王者荣耀苹果用户可以转?王者荣耀苹果用户转安卓的方法教程...
  14. java中一个简单的涂鸦程序
  15. 蓝牙LE Audio的关键-LC3技术
  16. git 入门教程之回到过去
  17. “特别难”的外卖运营,如今有了免费管家
  18. C语言中结构体struct的用法总结
  19. linux aarch64 yum,安装aarch64的centos的yum源
  20. MAC忘记本地数据库密码的解决方法

热门文章

  1. Java利用接口计算立体图形的表面积和体积
  2. html左侧菜单展开与收起,CSS3 实现侧边栏展开收起动画
  3. Java毕设-商标管理系统
  4. STM32存储器 — 2STM32存储器知识的相关应用(IAP、Bit Banding)
  5. iOS二维码限制区域识别、扫描动画
  6. cad快看_CAD三维这样材质贴图,你学会了吗 ?
  7. java 模拟库存管理系统
  8. 史上最难的大学专业 计算机 土木建筑 医学,大学最易挂科的专业,智商不够别报考,不然很难毕业!...
  9. 提高办公协同效率,Tracup可能是最好的选择
  10. Ubuntu 16.04 安装GTX 1060 显卡驱动和CUDA 10.2