二叉树的最小深度 LeetCode: "二叉树的最小深度" 题目描述: 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点 示例: 思想: 还是递归,没啥特别的 代码 我的第一遍代码: 优化之后: if(x == 0||y ...
分类:
编程语言 时间:
2020-04-19 11:17:51
阅读次数:
76
题意:给出一棵树,要求给树上的每条边赋权值,使得任意两个叶子节点的路径上所有权值异或之后为0,边数n范围为[3,1e5],求使用的不同权值数的最小值和最大值。 题解: 任取一个叶子节点为树根建树。则题意可转化为 首先考虑最小值 由异或的性质(a^b^b=a,总存在c使得对任意a,b有a^b^c=0) ...
分类:
其他好文 时间:
2020-04-19 10:57:12
阅读次数:
65
Description 现在有一棵二叉树,所有非叶子节点都有两个孩子。在每个叶子节点上有一个权值(有 $n$ 个叶子节点,满足这些权值为 $1\cdots n$ 的一个排列)。 可以任意交换每个非叶子节点的左右孩子。 要求进行一系列交换,使得最终所有叶子节点的权值按照遍历序写出来,逆序对个数最少。 ...
分类:
其他好文 时间:
2020-04-18 09:28:42
阅读次数:
47
先给出哈夫曼树的定义:构造一颗包含n个节点的k叉树其中每个叶子节点都有权值w[i],要求最小化所有叶子节点的w[i]*deep[i]之和.该问题的解被称为k叉哈夫曼树. 先来说两个引理: 1.权值最小的节点深度必定最大. 证明:我们设x,y.使得w[x]>w[y].但deep[x]>deep[y]如 ...
分类:
其他好文 时间:
2020-04-16 20:55:30
阅读次数:
89
解题思路:先判断当前节点是否为空,不为空则加入路径中,若不为空,判断该节点是否为叶子节点,为叶子节点则将路径加入答案,否则继续递归左右子树.给定一个二叉树,返回所有从根节点到叶子节点的路径。说明:叶子节点是指没有子节点的节点。示例:输入:1/\23\5输出:["1->2->5","1->3"]解释:所有根节点到叶子节点的路径为:1->
分类:
编程语言 时间:
2020-04-15 10:43:44
阅读次数:
88
题目描述 给定一个二叉树,它的每个结点都存放着一个整数值。 找出路径和等于给定数值的路径总数。 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 二叉树不超过1000个节点,且节点数值范围是 [ 1000000,1000000] 的整数。 示例: 题 ...
分类:
其他好文 时间:
2020-04-14 16:35:33
阅读次数:
67
题目描述有一棵二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从上到下从左到右编号为1,2,3,…,2D-1。在结点1处放一个小球,它会往下落。每个内结点上都有一个开关,初始全部关闭,当每次有小球落到一个开关上时,它的状态都会改变。当小球到达一个内结点时,如果该结点上的开关关闭,则往左走,否则 ...
分类:
其他好文 时间:
2020-04-14 00:41:06
阅读次数:
63
"D Edge Weight Assignment" 参考: "Codeforces Round 633 Editorial " 感觉这个题关键之处在于,要会将图化为一棵树,这样逻辑会清晰很多。 如果叶子之间距离存在有奇数(非1),那么最小的 f 值一定为3,否则为1。可以通过求解其他叶子节点到某一 ...
分类:
其他好文 时间:
2020-04-13 23:09:29
阅读次数:
82
题目描述 计算给定二叉树的所有左叶子之和。 示例: 题目链接: https://leetcode cn.com/problems/sum of left leaves/ 思路 一棵树的所有左叶子之和就是这棵树左子树的左叶子+右子树的左叶子。只有是左叶子才加进结果里,判断一个节点是否是左叶子的方法是根 ...
分类:
其他好文 时间:
2020-04-13 22:33:18
阅读次数:
67
"Description" 思路 这题总觉得有些想法,但是就是写不出来。看了 "题解" 好久才想明白。(以下均图片来自cf "题解" ) 每个度数大于2的结点都是某些叶子结点的LCA,设这个结点为图中的C。虚线代表从叶子结点到C的路径,把路径上面的边全部合并,看成一条边。 对树进行这样的处理之后,一 ...
分类:
其他好文 时间:
2020-04-13 14:08:37
阅读次数:
80