直接上代码 还有一种方法:前序遍历的时候,顺序是:根-左-右。现在只要改成:根-右-左,最后在reverse一下 注意由于stack先进后出,前序遍历的时候是先压入右,再压左,这里是先左后右 层序遍历: 层序遍历用BFS 迭代方法:存取节点的结构是queue队列,常用的实现类是linkedlist, ...
分类:
其他好文 时间:
2018-03-13 12:16:39
阅读次数:
143
以下是比较常见的题型 1、二叉树的深度/宽度 二叉树的最大深度 "104 Maximum Depth of Binary Tree" 二叉树的最小深度 "111 Minimum Depth of Binary Tree" 二叉树的最大宽度 "662 Maximum Width of Binary T ...
分类:
其他好文 时间:
2018-03-11 14:32:08
阅读次数:
254
一般常见于二叉树的层序遍历 "Binary Tree Level Order Traversal" "Binary Tree Level Order Traversal II" "Binary Tree Zigzag Level Order Traversal" ...
分类:
其他好文 时间:
2018-03-11 14:29:33
阅读次数:
131
给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。 输入格式: 输入第一行给出一个正整数N(<=30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。 ...
分类:
其他好文 时间:
2018-02-17 20:48:16
阅读次数:
205
public int widthOfBinaryTree(TreeNode root) { /* 层序遍历+记录完全二叉树的坐标,左孩子2*i,右孩子2*i+1 而且要有两个变量,一个记录本层节点数,一个记录下层节点数 层序遍历用队列实现 还要有一个队列记录本层的下标 */ //层序... ...
分类:
其他好文 时间:
2018-02-04 19:28:23
阅读次数:
169
Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom. For exa ...
分类:
其他好文 时间:
2018-02-01 14:43:22
阅读次数:
113
给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 输入格式: 输入第一行给出一个正整数N(<=30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。 输出格式: 在一行中输出该树的层序遍历的序列。数字间以1 ...
分类:
其他好文 时间:
2018-01-30 19:59:13
阅读次数:
159
packagejianzhiOffer;importjava.util.ArrayList;/***从上往下打印出二叉树的每个节点,同层节点从左至右打印。**@authoruser思路:本题中我们利用层序遍历的思想,首先将树中所有节点按照一层从左到右依次保存到ArrayList中,然后在逐一取出*节点的值添加到集合中,最后返回集合。*/classTreeNode3{intval=0;TreeNod
分类:
其他好文 时间:
2018-01-20 10:57:37
阅读次数:
123
深度优先遍历与广度优先遍历深度优先遍历 1.深度优先遍历的递归定义 假设给定图G的初态是所有顶点均未曾访问过。在G中任选一顶点v为初始出发点(源点),则深度优先遍历可定义如下:首先访问出发点v,并将其标记为已访问过;然后依次从v出发搜索v的每个邻接点w。若w未曾访问过,则以w为新的出发点继续进行深度 ...
分类:
编程语言 时间:
2018-01-03 13:56:41
阅读次数:
177