
队列
萌萌,站起来
这个作者很懒,什么都没留下…
展开
-
玩转树形问题 lee17 电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:“23” 输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. 说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。 经典问题递归 总结过程就是 比如输入2...原创 2020-02-09 16:41:32 · 124 阅读 · 0 评论 -
lee199 二叉树右视图
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例: 输入: [1,2,3,null,5,null,4] 输出: [1, 3, 4] 解释: 1 <— / 2 3 <— \ 5 4 <— 思路 广度优先遍历 BFS 层序遍历 queue 用queue层...原创 2020-01-21 17:16:35 · 178 阅读 · 0 评论 -
new 把二叉树打印成多行 看层序遍历程序 5.13总结
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。、 思路 层序遍历 队列 每次打印一个节点的时候,如果该节点有子节点,则把该节点的子节点放到队列的末尾,到队列的头部取出最早进入队列的节点, 用到的数据结构 ArrayList<ArrayList> result = new ArrayList<ArrayList>(); 用 ArrayList<Ar...原创 2019-10-27 18:36:33 · 100 阅读 · 0 评论 -
new lee103 按之字形顺序打印二叉树 stack看懂了不知道错在哪
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 思路 大家的实现很多都是将每层的数据存进ArrayList中,偶数层时进行reverse操作, 在海量数据时,这样效率太低了。 (我有一次面试,算法考的就是之字形打印二叉树,用了reverse, 直接被鄙视了,面试官说海量数据时效率根本就不行。) 下面...原创 2019-10-27 18:09:06 · 165 阅读 · 1 评论 -
new 二叉树的深度
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 递归 要理解意思 public class Solution { public int TreeDepth(TreeNode root) { if(root==null) return 0; int leftnum...原创 2019-10-23 19:05:09 · 132 阅读 · 0 评论 -
new 从上往下打印二叉树
从上往下打印出二叉树的每个节点,同层节点从左至右打印。 思路 通过上面的具体例子分析,可以找到规律:每一次打印一个节点的时候,如果该节点有子节点,则把该节点的子节点放到一个队列的尾部。接下来到对队列的头部取出最早进入队列的节点放到ArrayList 中,重复前面的操作,直至队列中所有的节点都存到ArrayList中。 import java.util.*; /** public class Tre...原创 2019-10-16 16:58:55 · 115 阅读 · 0 评论 -
new5 两个栈实现一个队列 两个队列实现一个栈
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 分析 队列的特性是:“先入先出”,栈的特性是:“先入后出” 当我们向模拟的队列插入数 a,b,c 时,假设插入的是 stack1,此时的栈情况为: 栈 stack1:{a,b,c} 栈 stack2:{} 当需要弹出一个数,根据队列的"先进先出"原则,a 先进入,则 a 应该先弹出。但是此时 a 在 stack1...原创 2019-10-12 20:57:43 · 196 阅读 · 0 评论