原文:用递归方法对二叉树进行层次遍历

在这里看到了这个题。层次遍历是用队列,一级一级地入队列然后输出。而用递归的话,我首先想到是用两个栈来模拟队列,在递归遍历二叉树的过程中入栈,然后最后一次性出栈。但仔细思考后发现无法做到层次遍历。在这里看到了正确的方法。 主要代码如下: 这个算法先求出根结点的高度,depth 高度 。在函数PrintNodeAtLevel中,当且仅当level 时才进行打印。举个例子: 这棵树的根的高度是 ,de ...

2013-04-04 09:01 0 14623 推荐指数:

查看详情

二叉树层次遍历递归版)

题目: 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7 ...

Fri Jul 10 17:52:00 CST 2020 0 857
Java实现二叉树的前序、中序、后序、层序遍历递归方法

  在数据结构中,二叉树是树中我们见得最多的,二叉查找树可以加速我们查找的效率,那么输出一个二叉树也变得尤为重要了。   二叉树遍历方法分为四种,分别为前序遍历、中序遍历、后序、层序遍历。下图即为一个二叉树。 前序遍历:先遍历根结点,然后遍历左子树,最后遍历右子树 ...

Wed Jan 11 07:43:00 CST 2017 0 11764
Java实现二叉树的前序、中序、后序、层序遍历(非递归方法

  在上一篇博客中,实现了Java中二叉树的四种遍历方式的递归实现,接下来,在此实现Java中非递归实现二叉树的前序、中序、后序、层序遍历,在非递归实现中,借助了栈来帮助实现遍历。前序和中序比较类似,也简单一些,但是后序遍历需要两个栈来进行辅助,稍微复杂一些,层序遍历中借助了一个队列来进行实现 ...

Wed Jan 11 07:44:00 CST 2017 2 18640
二叉树的非递归遍历层次遍历

二叉树递归遍历很好写,也很好理解。但因为是递归程序,不可避免地需要调用系统栈,耗时较长,这里我们来探究一下二叉树的非递归遍历的算法。这种方法需要使用栈这种数据结构,这里关于栈的一些操作函数可以看成伪代码吧,先给出线序、中序、后序遍历的代码即说明。 先序遍历: 再给出 ...

Sun Nov 04 01:35:00 CST 2018 4 8165
二叉树层次遍历算法+非递归

基本思路: (1)若树节点非空,则入队。 (2)把对头的左右节点入队(非空),出队(并输出结果) (3)重复步骤(2)直到对为空 算法: ...

Wed May 23 06:25:00 CST 2012 0 5477
二叉树层次遍历

问题描述: 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如:给定二叉树: [3,9,20,null,null,15,7], 返回其层次遍历结果: 解题思路: 定义变量list,List<List<Integer> ...

Wed Jul 11 03:43:00 CST 2018 0 1254
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM