题目:判断一棵二叉树是否是完全二叉树
思路:
1.首先明确完全二叉树的概念。完全二叉树除最后一层外,所有层结点数均达到最大值,最后一层结点连续集中在最左边。空树也是完全二叉树。
2.我们可以通过层序遍历的方式遍历这个二叉树,使用一个队列存储遍历的结点。可以利用最后一层的结点集中在左侧这个特性解题,具体看代码:
代码:
bool isComple...
分类:
其他好文 时间:
2014-08-19 19:07:15
阅读次数:
190
Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between).
zigzag层序遍历树
For example:
Given binary...
分类:
其他好文 时间:
2014-08-09 23:19:59
阅读次数:
363
题目: 给定一个二叉树(假设是完全二叉树),把每个节点的next指针指向其右侧节点。
思路:首先想到的是,层序遍历树,在遍历的同时添加节点对右侧节点的指针。
另一种简洁的方法是采用递归来实现,间单直观。...
分类:
其他好文 时间:
2014-08-03 15:23:45
阅读次数:
246
思路:
即二叉树的层序遍历。可以使用一个辅助队列,首先将二叉树的根节点入队,然后打印根结点的值,接着判断根结点
是否有左右孩子,如果有,将左右孩子入队。如此循环直到队列为空。
代码:
/*
从上到下遍历二叉树
by Rowandjj
2014/8/1
*/
#include
using namespace std;
typedef struct _BNODE_
{
i...
分类:
其他好文 时间:
2014-08-01 19:40:02
阅读次数:
245
二叉树主要有三种遍历方式:前序遍历、中序遍历和后序遍历,每种方式都有递归和非递归两种方法。递归的方法简单明了,但是会比较耗时,非递归的方法效率相对较高,但是算法也比较晦涩。本文就这三种遍历方式做简单的介绍。...
分类:
其他好文 时间:
2014-08-01 13:47:41
阅读次数:
223
题目:Given a binary tree, return thelevel ordertraversal of its nodes' values. (ie, from left to right, level by level).For example:Given binary tree{3,...
分类:
其他好文 时间:
2014-07-01 12:44:09
阅读次数:
199
题目:Given a binary tree, return thebottom-up level ordertraversal of its nodes' values. (ie, from left to right, level by level from leaf to root).For ...
分类:
其他好文 时间:
2014-07-01 12:26:07
阅读次数:
215
二叉树的层序遍历(要求区分层,例如每层遍历完输出换行)
单单层序遍历非常简单,一个队列就搞定了,但是区分层则要麻烦些。总的思路无非就是在每次print的时候,要能通过某个东西
区分出当前节点是否是一层最后一个节点,或者下一层的最后一个节点,感觉有点类似于机器学习中找个区分度明显的特征:
1.自己的解法,在单队列基础上,输入队列的数据添加一个标志 ,LevelHeaded,同时...
分类:
其他好文 时间:
2014-06-01 10:49:44
阅读次数:
267
出题:要求层序遍历二叉树,从上到下的层次,每一层访问顺序为从左到右,并将节点一次编号,输出如下;如果只要求打印指定的level的节点,应该如何实现。 a b c
d e f g h i分析:原始的层序遍历类似于BFS,打印当前访问的节点curNode的序列号,并将其直接子节点放入队列queu...
分类:
其他好文 时间:
2014-05-25 22:22:45
阅读次数:
321
剑指offer上的第23题,实际上就是考察二叉树的层序遍历,具体思想可以参考这里。
题目描述:
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
输入:
输入可能包含多个测试样例,输入以EOF结束。
对于每个测试案例,输入的第一行一个整数n(1<=n<=1000, :n代表将要输入的二叉树元素的个数(节点从1开始编号)。接下来一行有n个数字,代表第i个二叉树节点的元素的值。接下来有n行,每行有一个字母Ci。
Ci=’d’表示第i个节点有两子孩子,紧接着是左孩子编号和右孩子编号。
Ci=’l’表示第i个...
分类:
其他好文 时间:
2014-05-22 08:29:03
阅读次数:
306