
树
树系列
crazy的蓝色梦想
小柒 爱前端
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
树 --- Leedcode 100 相同的树
题目 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3] 输出: true 解析 明确每个节点该做的事,剩下的交给递归。 var isSameTree = function(p, q) { if(p === null &原创 2020-09-16 10:46:59 · 497 阅读 · 0 评论 -
二叉树 --- Leedcode 235 二叉搜索树的最近公共祖先
题目 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5] 示例 1: 输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8 输出: 6 解释:原创 2020-08-19 21:29:42 · 234 阅读 · 0 评论 -
二叉搜索树 --- Leedcode 700 二叉搜索树中的搜索 (Easy)
题目 给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。 例如, 给定二叉搜索树: 4 / \ 2 7 / \ 1 3 和值: 2 你应该返回如下子树: 2 / \ 1 3 在上述示例中,如果要找的值是 5,但因为没有节点值为 5,我们应该返回 NULL。 解答 二叉树原创 2020-08-18 18:23:04 · 206 阅读 · 0 评论 -
二叉树 --- leedcode 404 左叶子之和
题目 计算给定二叉树的所有左叶子之和。 示例: 3 / \ 9 20 / \ 15 7 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 解答 var sumOfLeftLeaves = function(root) { return helper(root, false); function helper(roo...原创 2020-05-03 20:35:27 · 197 阅读 · 0 评论 -
二叉树 --- leedcode 111 二叉树的最小深度
题目 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最小深度 2 解答 与求树的最大深度不一样的是:要考虑节点只有左节点或者右节点的情况。 v...原创 2020-05-03 20:22:27 · 201 阅读 · 0 评论 -
树 --- Leecode 101 判断是否是对称树 (Easy)
题目 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3 解答 思路: 递归。比较两个节点的左子树与右子树...原创 2020-03-31 16:27:49 · 164 阅读 · 0 评论 -
树 --- leedcode 572 子树 (Easy)
题目 给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。 s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。 示例 1: 给定的树 s: 3 / \ 4 5 / \ 1 2 给定的树 t: 4 / \ 1 2 返回 true,因为 t 与 s 的一个子树拥有相同...原创 2020-03-22 22:25:36 · 162 阅读 · 0 评论 -
树 --- leedcode 437 统计路径和等于一个数的路径数量 (Easy)
题目 给定一个二叉树,它的每个结点都存放着一个整数值。 找出路径和等于给定数值的路径总数。 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。 示例: root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = ...原创 2020-03-21 10:34:34 · 439 阅读 · 0 评论 -
树 --- leedcode 112 判断路径和是否等于一个数 (Easy)
题目 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 ...原创 2020-03-20 11:02:05 · 138 阅读 · 0 评论 -
树 --- leedcode 617 合并二叉树 (Easy)
题目 给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。 示例 1: 输入: Tree 1 Tree 2 ...原创 2020-03-20 09:51:42 · 137 阅读 · 0 评论 -
树 --- leedcode 226 翻转二叉树 (Easy)
题目 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 解析 方法一:递归 思路: 将每一个节点的左右子树都进行交换 java代码: class Solution { public TreeNo...原创 2020-03-20 09:07:05 · 135 阅读 · 0 评论 -
树 --- leedcode 543 二叉树的直径 (Easy)
题目 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点 路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 示例 : 给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 注意:两结点之...原创 2020-03-19 13:42:39 · 124 阅读 · 0 评论 -
树 --- leedcode 110 平衡二叉树 (Easy)
题目 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回 true 。 解析: 使用递归: 每个节点的左右子数高度差都不超过1,才是平...原创 2020-03-19 12:20:26 · 120 阅读 · 0 评论 -
树 --- leedcode 104 树的深度 (Easy)
题目 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。 解释 使用递归: public int maxDepth(TreeNod...原创 2020-03-19 12:15:45 · 145 阅读 · 0 评论