树
文章平均质量分 78
树相关题目
珞沫
欲望以提升热忱,毅力以磨平高山。
展开
-
LeetCode之对称二叉树(101)、左叶子之和(404)、最长同值路径(687)
1、对称二叉树(101)题目描述:【简单】给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3 题目链接思路分析:2、左叶子之和(404)题目描述:【简单】计算给定二叉树的所有左叶子之和。 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24题目链接思路分析:原创 2021-01-30 17:29:20 · 104 阅读 · 0 评论 -
LeetCode之相同的树(100)、另一树的子树(572)、合并二叉树(617)
1、平衡二叉树(110)题目描述:【简单】给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入: Tree 1 Tree 2 1 2原创 2021-01-28 11:39:28 · 146 阅读 · 2 评论 -
LeetCode之平衡二叉树(110)、翻转二叉树(226)
1、平衡二叉树(110)题目描述:【简单】给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。示例 1:输入:root = [3,9,20,null,null,15,7]输出:true题目链接思路分析:这是求树的高度的延伸版, 我们只要求左右子树相差的高度是否超过 1,就可以了!题解一:自顶向下的递归1、首先我们需要定义一个高度函数,用于计算二叉树中的任意一个节点 p 的高度2、我们原创 2021-01-27 11:20:25 · 274 阅读 · 0 评论 -
Leetcode之验证二叉搜索树(98)、二叉搜索树迭代器(173)
BST定义1、Leetcode之验证二叉搜索树(98)2、二叉搜索树迭代器(173)1、Leetcode之验证二叉搜索树(98)题目描述:【中等题】给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。思路分析题解一:递归+最大值最小值思想1、根据二叉搜索树的性质可知每一个结点(可设根结点位于(−inf,+inf)(-\inf ,+\inf原创 2020-09-01 17:02:12 · 175 阅读 · 0 评论 -
LeetCode之把二叉搜索树转换为累加树(538)、二叉搜索树中第K小的元素(230)、二叉搜索树的最小绝对差(530)、两数之和IV—输入BST(653)
二叉搜索树1、把二叉搜索树转换为累加树(538)2、二叉搜索树中第K小的元素(230)3、在二叉搜索树中寻找两个节点,使他们的和为给定值(653)1、把二叉搜索树转换为累加树(538)题目描述:【简单题】题目链接思路分析2、二叉搜索树中第K小的元素(230)题目描述:【中等题】给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。进阶:如果二叉搜索树经常被修改(插入/删除操原创 2020-08-27 16:04:07 · 159 阅读 · 0 评论 -
LeetCode之将有序数组转换为二叉搜索树(108)、二叉搜索树的最近公共祖先(235)、二叉搜索树中的众数(501)、修剪二叉搜索树(669)
二叉搜索树、AVL树1、有序数组转换为二叉搜索树(108)1、有序数组转换为二叉搜索树(108)题目描述:【简单题】将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:题目链接...原创 2020-08-24 18:01:03 · 177 阅读 · 0 评论 -
LeetCode之二叉树的所有路径(257)、路径总和(112、113、437)、二叉树的直径(543)
树的路径1、 二叉树的所有路径(257)2、路径总和(112)—判断路径和是否等于一个数3、路径总和II(113)—找到所有路径总和等于给定目标和的路径。4、路径总和III(437)—统计路径和等于给定数的路径总量5、二叉树的直径(543)1、 二叉树的所有路径(257)题目链接2、路径总和(112)—判断路径和是否等于一个数题目链接3、路径总和II(113)—找到所有路径总和等于给定目标和的路径。4、路径总和III(437)—统计路径和等于给定数的路径总量题目链接5、二叉树的直径(543)原创 2020-08-16 21:12:44 · 1713 阅读 · 0 评论 -
LeetCode之二叉树的遍历之前序遍历(144)、中序遍历(94)、后序遍历(145)、层序遍历(102)、层次遍历II(107)
题目链接详谈二叉树2——二叉树的遍历原创 2020-06-01 21:21:12 · 314 阅读 · 0 评论 -
LeetCode之N叉树的最大深度(559)、二叉树的最大深度(104)、二叉树的最小深度(111)
题目链接知识点回顾:此题考察树的深度:树中所有结点的最大层数, 也称高度。题解一: 递归法—DFS1、如果根结点为空,则返回0;2、如果根结点有孩子,递归调用函数依次求孩子的深度,返回(孩子深度的最大值+1);3、否则,返回1。"""# Definition for a Node.class Node(object): def __init__(self, val=None, children=None): self.val = val self.原创 2020-08-15 11:12:59 · 353 阅读 · 1 评论 -
LeetCode之N叉树的后序遍历(590)
题目链接知识点回顾:此题考察树的后序遍历:后序遍历:左子树结点、右子树结点、根节点思路:1.若树为空,则空操作返回2.按照从左到右的顺序后序遍历根节点的每一颗子树即孩子。题解一: 递归法"""# Definition for a Node.class Node(object): def __init__(self, val=None, children=None): self.val = val self.children = children.原创 2020-08-14 22:38:05 · 185 阅读 · 0 评论 -
LeetCode之N叉树的前序遍历(589)
题目链接知识点回顾:此题考察树的前序遍历:前序遍历:根结点、左子树结点、右子树结点思路:1.若树为空,则空操作返回2.否则,访问根结点,按照从左到右的顺序前序遍历根节点的每一颗子树。题解一: 递归法题解二: 迭代法使用进栈出栈的方法,由于栈后进先出,因此进栈的顺序与前序遍历的顺序(从左到右)相反即从右到左。1、如果根结点为空,返回空2、初始化栈为根结点,建立一个空表result存放结果3、当栈不为空时,进行以下循环:3.1将栈顶元素弹出至当前结点指针p3.2 将p添加到res.原创 2020-08-14 21:38:42 · 187 阅读 · 0 评论