堆的应用场景堆(heap)又被为优先队列(priorityqueue)。尽管名为优先队列,但堆并不是队列。回忆一下,在队列中,我们可以进行的限定操作是dequeue和enqueue。dequeue是按照进入队列的先后顺序来取出元素。而在堆中,我们不是按照元素进入队列的先后顺序取出元素的,而是按照元素的优先级取出元素。这就好像候机的时候,无论谁先到达候机厅,总是头等舱的乘客先登机,然后是商务舱的乘客
分类:
编程语言 时间:
2020-11-23 12:27:45
阅读次数:
6
基本原理: 通过利用队列对每一层的节点从左至右依次进队,然后对已经进队的上一层进行出队,直到所有队列全部出队,该函数结束。 算法分析: 第一,先将根节点的左右孩子进队,然后再访问根节点。(如果没有左右孩子则不进队,直接结束函数) 第二,判断队列是否为空,如果不为空,则进入循环体。 第三,先将出队一个 ...
分类:
编程语言 时间:
2020-11-21 12:47:49
阅读次数:
27
题目描述: 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。 这条路径可能穿过也可能不穿过根结点。 分析: 本题和 124. 二叉树中的最大路径和 是一样的思想 ,124 题是在二叉树中 求一条路径 使得这条路径上的 节点和最大。本题是在二叉树树中找一条 ...
分类:
其他好文 时间:
2020-11-21 11:56:08
阅读次数:
3
一、判断二叉树是否对称 给定一棵二叉树,判断它是否是自身的镜像(即:是否对称)例如:下面这棵二叉树是对称的 1 / \ 2 2 / \ / \3 4 4 3下面这棵二叉树不对称。 1 / \ 2 2 \ \ 3 3备注:希望你可以用递归和迭代两种方法解决这个问题 二、示例 输入:{1,2,2} 输出 ...
分类:
其他好文 时间:
2020-11-20 12:14:29
阅读次数:
9
给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1: 输入: 2 / \ 1 3输出: true示例 2: 输入: 5 / \ 1 4 / \ ...
分类:
其他好文 时间:
2020-11-19 12:14:56
阅读次数:
5
什么是“线段树”?线段树是一个复杂的数据结构,比较难理解,也比较难解释清楚。在我将这个数据结构反复学习了五遍的时候,我终于有了信心写出这篇介绍线段树的文章。希望大家能够掌握这种数据结构。这篇文章比较长,建议大家耐心阅读,好好消化吸收哦~~前置内容学习线段树前,你需要掌握二叉搜索树,不太了解的小伙伴,可以看看小灰之前发布的红黑树漫画,前半部分讲解了二叉搜索树:漫画:什么是红黑树?我只补充一个内容,就
分类:
其他好文 时间:
2020-11-18 12:14:31
阅读次数:
3
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: ? 3 ? / ? 9 20 ? / ...
分类:
其他好文 时间:
2020-11-16 14:00:02
阅读次数:
13
从前序与中序遍历序列构造二叉树 题目: 根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 解题思路:前序数组的第一个 ...
分类:
其他好文 时间:
2020-11-13 12:22:54
阅读次数:
7
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同 解决思路 根据后序遍历的性质,最后一个元素就是二叉搜索树的根结点。而二叉搜索树按中序遍历得出的序列又是递增有序的,从根结点可以将序列分为两段:前一段(左子 ...
分类:
其他好文 时间:
2020-11-12 13:21:14
阅读次数:
9
##问题描述 给你 root1 和 root2 这两棵二叉搜索树。 请你返回一个列表,其中包含 两棵树 中的所有整数并按 升序 排序。 示例 1: 输入:root1 = [2,1,4], root2 = [1,0,3] 输出:[0,1,1,2,3,4] 示例 2: 输入:root1 = [0,-10 ...
分类:
其他好文 时间:
2020-11-11 16:51:33
阅读次数:
26