首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

二叉深度和宽度

1 二叉深度 题目: 输入一个二叉根节点,深度。从根节点到叶子节点依次经过节点(含根、叶节点)形成一条路径,最长路径长度包含节点数为为深度,即二叉树节点层数。...对于任意一棵非空二叉,有如下四种情况: (1)如果一颗只有一个节点,它深度是1; (2)如果根节点只有左子树而没有右子树,那么二叉深度应该是其左子树深度加1; (3)如果根节点只有右子树而没有左子树...,那么二叉深度应该是其右深度加1; (4)如果根节点既有左子树又有右子树,那么二叉深度应该是其左右子树深度较大值加1; 实现代码: int treeDepth(BinaryTreeNode...nLeft+1:nRight+1; } 2 二叉宽度 题目: 给定一颗二叉二叉宽度。 宽度定义: 二叉宽度定义为具有最多结点数层中包含结点数。...[2]二叉深度和宽度

2.2K20

哈夫曼权值

本文链接:https://blog.csdn.net/weixin_42449444/article/details/85785671 题目描述: 哈夫曼,第一行输入一个数n,表示叶结点个数。...需要用这些叶结点生成哈夫曼,根据哈夫曼概念,这些结点有权值,即weight,题目需要输出所有结点值与权值乘积之和。 输入描述: 输入有多组数据。...输入样例: 5 1 2 2 5 9 输出样例: 37 相关知识: 给定n个权值作为n个叶子结点,构造一棵二叉,若该带权路径长度达到最小,称这样二叉为最优二叉,也称为哈夫曼(Huffman...哈夫曼是带权路径长度最短,权值较大结点离根较近。 解题思路: 利用优先队列来求解,每次从队列中取出最小值和次小值累加之后再入队,一直算到结点大小为1,即根结点为止。.../取出队列中次最小元素 int min2 = l.top(); l.pop(); //计算最小值和次最小值权值 sum += min1

1K20

线段 BIT 冒泡排序交换次数

线段特别适合与区间相关运算,比如MRQ(minimum range query)一段区间内最小值。...BIT可以看作是压缩了线段,由于(某类)线段右节点可以由父结点和左兄弟求出来,所以右结点就不用存了。...冒泡排序交换次数,直观想可以直接在冒泡排序过程中计算交换次数,时间复杂度是O(n^2)。交换次数其实是(位置在j前面,数值还比aj大数)j从0到n求和。...算法特点是反复对某一区间内所有元素求和,可以用BIT来优化。...做法是,i从0到n遍历,在循环某一趟中,dat[ai]表示数字ai之前出现过次数,sum(ai)表示在这一趟之前,小于等于ai数出现次数。

1.6K80

二叉搜索最小绝对差!

利用二叉搜索特性搞事情!...,请你计算中任意两节点绝对值最小值。...示例: 提示:中至少有 2 个节点。 思路 题目中要求在二叉搜索树上任意两节点绝对值最小值。 注意是二叉搜索,二叉搜索可是有序。...遇到在二叉搜索树上什么最值啊,差值之类,就把它想成在一个有序数组上最值,求差值,这样就简单多了。 递归 那么二叉搜索采用中序遍历,其实就是一个有序数组。...在一个有序数组上两个数最小差值,这是不是就是一道送分题了。 最直观想法,就是把二叉搜索转换成有序数组,然后遍历一遍数组,就统计出来最小差值了。

28610

Python算法——最大深度和最小深度

Python中最大深度和最小深度算法详解 最大深度和最小深度是树结构中两个关键指标,它们分别表示从根节点到最深叶子节点最大路径长度和最小路径长度。...在本文中,我们将深入讨论如何计算最大深度和最小深度,并提供Python代码实现。我们将详细说明算法原理和步骤。 计算最大深度 最大深度是指从根节点到最深叶子节点最大路径长度。...我们可以通过递归遍历左右子树来计算最大深度。...和最大深度类似,我们同样可以通过递归遍历左右子树来计算最小深度。...) print("最小深度:", min_depth_value) 输出结果: 最大深度: 3 最小深度: 2 这表示在给定二叉中,最大深度为3,最小深度为2。

19410
领券