面试笔试准备(1)

本篇内容为牛客网,左程云算法课程课堂笔记。

(1)有一棵二叉树,请设计一个算法,按照层次打印这棵二叉树。

给定二叉树的根结点root,请返回打印结果,结果按照每一层一个数组进行储存,所有数组的顺序按照层数从上往下,且每一层的数组内元素按照从左往右排列。保证结点数小于等于500。

要点:(1)使用队列实现二叉树的层次遍历。(2)注意换行。(3)对输出的理解。

           (1)队列实现二叉树的层次遍历:从根节点开始,一层一层打印这个二叉树。首先在队列中装入根节点。然后,当队列不为空的时候,弹出队首节点,并将弹出节点的左右孩子入队列(如果存在的话)。这是二叉树层次遍历的主要过程。

           (2)换行:换行的实现,是通过两个标志指:last用来指向从队列中弹出的节点所在行的最右节点,一个用来跟踪下一层的节点入队列的情况。,当last等于弹出节点,说明该换行了。并将last等于nlast.

            (3) 对输出的理解:输出肯定有多种方式。但是本人基础较差。因此,在这里特意给自己叮嘱一下:使用arraylist来保存输出结果,每一层都使用一个动态数组来保存,然后,整个二叉树,使用一个大的list来保存不同层的list。

public int[][] printTree(TreeNode root) {
        ArrayList<ArrayList<Integer>> list=new ArrayList<>();//用来装每层的遍历值。
        ArrayList<Integer> list2=new ArrayList<>();
        TreeNode last=root;
        TreeNode nlast=root;
        Queue<TreeNode> queue=new LinkedList<>();//用一个队列进行便利。
        queue.add(root);
        while (!queue.isEmpty()) {
			TreeNode tmp=queue.poll();
			list2.add(tmp.val);
			if (tmp.left!=null) {
				queue.add(tmp.left);
				nlast=tmp.left;
			}
			if (tmp.right!=null) {
				queue.add(tmp.right);
				nlast=tmp.right;
			}
			if (tmp==last) {
				last=nlast;
				list.add(list2);
				list2=new ArrayList<>();
			}
			
		}
        int res[][]=new int[list.size()][];
        for (int i = 0; i < list.size(); i++) {
			res[i]=new int[list.get(i).size()];
			for (int j = 0; j < res[i].length; j++) {
				res[i][j]=list.get(i).get(j);
			}
		}
        return res;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GeoPandas是一个开源的Python库,旨在简化地理空间数据的处理和分析。它结合了Pandas和Shapely的能力,为Python用户提供了一个强大而灵活的工具来处理地理空间数据。以下是关于GeoPandas的详细介绍: 一、GeoPandas的基本概念 1. 定义 GeoPandas是建立在Pandas和Shapely之上的一个Python库,用于处理和分析地理空间数据。 它扩展了Pandas的DataFrame和Series数据结构,允许在其中存储和操作地理空间几何图形。 2. 核心数据结构 GeoDataFrame:GeoPandas的核心数据结构,是Pandas DataFrame的扩展。它包含一个或多个列,其中至少一列是几何列(geometry column),用于存储地理空间几何图形(如点、线、多边形等)。 GeoSeries:GeoPandas中的另一个重要数据结构,类似于Pandas的Series,但用于存储几何图形序列。 二、GeoPandas的功能特性 1. 读取和写入多种地理空间数据格式 GeoPandas支持读取和写入多种常见的地理空间数据格式,包括Shapefile、GeoJSON、PostGIS、KML等。这使得用户可以轻松地从各种数据源中加载地理空间数据,并将处理后的数据保存为所需的格式。 2. 地理空间几何图形的创建、编辑和分析 GeoPandas允许用户创建、编辑和分析地理空间几何图形,包括点、线、多边形等。它提供了丰富的空间操作函数,如缓冲区分析、交集、并集、差集等,使得用户可以方便地进行地理空间数据分析。 3. 数据可视化 GeoPandas内置了数据可视化功能,可以绘制地理空间数据的地图。用户可以使用matplotlib等库来进一步定制地图的样式和布局。 4. 空间连接和空间索引 GeoPandas支持空间连接操作,可以将两个GeoDataFrame按照空间关系(如相交、包含等)进行连接。此外,它还支持空间索引,可以提高地理空间数据查询的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值