问题描述 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2. 来源:力扣(LeetCod ...
分类:
其他好文 时间:
2020-07-11 19:26:40
阅读次数:
44
线段树是一种二叉树,也就是对于一个线段,我们会用一个二叉树来表示。
可以进行一些区间的修改和查询。 ...
分类:
其他好文 时间:
2020-07-11 19:21:50
阅读次数:
41
前序遍历的非递归实现 中序遍历的非递归实现 1 void InOrder2(BTNode *root) { 2 BTNode *p = root; 3 stack<BTNode *> S; 4 while (p != NULL || !S.empty()) { 5 if (p) { // 找到树中最 ...
分类:
编程语言 时间:
2020-07-11 19:21:14
阅读次数:
59
题目叙述 给定一个数组 \(c\) 和一个数 \(s\) ,求满足以下条件的二叉树数量: 每个节点有个权值,权值为 \(c\) 中的一个数 所有节点权值和为 \(s\) 题解 首先设 \(f_i\) 表示 \(i\) 个结点组成的这样的树有 \(f_i\) 个,\(g_i\) 表示数 \(i\) 是 ...
分类:
其他好文 时间:
2020-07-11 19:08:24
阅读次数:
75
最常用,也是最简单的算法,实质就是直接对暴力使用倍增优化将复杂度降低达到需求。有树上的倍增和区间的倍增 ...
分类:
其他好文 时间:
2020-07-11 19:06:59
阅读次数:
50
问题描述 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 3/ \9 20/ \15 7返回 true 。 示例 2: 给定二叉树 ...
分类:
其他好文 时间:
2020-07-11 12:37:20
阅读次数:
57
前言 续前一章。 正文 删除节点规则: 1.假如删除的是叶子节点,让他的父节点,断开和它的联系。 2.如果删除节点右左子树或者右子树的话,那么应该这样。 如果删除节点是它的父节点的左节点,而删除节点有左节点,那么删除节点的父节点的左节点就等于删除节点的左节点。 举个栗子哈: 假如要删除的是15,那么 ...
分类:
编程语言 时间:
2020-07-11 09:41:34
阅读次数:
68
树_第1题:二叉树的最大深度 题目描述: 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 举例: 示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最 ...
分类:
编程语言 时间:
2020-07-11 00:23:04
阅读次数:
62
前言 什么是二叉堆排序呢? 就是上面这种,一个节点大于左节点,但是小于右节点,再我写的例子中会写出大于等于右节点。 那么如何让一个数组进行变成这种二叉树呢? 其实只要有规律就很简单。 第一个元素(0)作为根节点。 第二个元素如果比第一个元素则判断是否有左节点,如果没有左节点,就是它的左节点,如果有左 ...
分类:
编程语言 时间:
2020-07-11 00:19:46
阅读次数:
87