
二叉树
二叉树hot100
努力d小白
这个作者很懒,什么都没留下…
展开
-
leetcode236.二叉树的最近公共祖先
中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(思路:分别记录p和q祖先,确定一个节点是否加入到祖先列表的规则是 :如果该节点是target或者该节点左右子树包含target。节点 5 和节点 4 的最近公共祖先是节点 5。因为根据定义最近公共祖先节点可以为节点本身。给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。节点 5 和节点 1 的最近公共祖先是节点 3。原创 2024-12-18 13:30:49 · 399 阅读 · 0 评论 -
leetcode437.路径总和III
利用前缀和的思想。注意的一点是 传入给左右子节点的sum和map应该是相同的 (据说面试官要求必须要使用前缀和思想)不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。和等于 8 的路径有 3 条,如图所示。思路:思路类似于560.和为K的子数组。,求该二叉树里节点值之和等于。问题:给定一个二叉树的根节点。原创 2024-12-17 18:07:44 · 614 阅读 · 0 评论 -
leetcode105.从前序与中序遍历序列构造二叉树
/ 前序遍历中下一个节点和上一个节点关系:是其左孩子 是其右孩子 和上一个节点没关系,自己是一个独立根节点。// 如何判断关系呢?在上一个节点划分出来的左边能找到下一个节点就是左孩子...//preorder:中左右 inorder 左中右。,请构造二叉树并返回其根节点。原创 2024-12-16 16:07:54 · 410 阅读 · 0 评论 -
leetcode114.二叉树展开为链表
思路:下面是满足进阶要求的代码,具体就是根据左右子节点各种情况分别作出相应处理,特别注意左右子节点都不为空的时候,要将左子树调整后的最后一个节点和右子树第一个节点连接。By the way,千万不要像我一样把要求使用O(1)额外空间以为成总共使用O(1)空间,也是醉了~额外空间)展开这棵树吗?你可以使用原地算法(原创 2024-12-15 17:14:51 · 338 阅读 · 0 评论 -
leetcode199.二叉树的右视图
层序遍历得到的结果是类似于[[3],[9,20],[15,7]],那么每一层层序遍历得到的最后一个节点值就是这一层的右视图。,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。思路:结合102层序遍历。原创 2024-12-13 19:02:39 · 572 阅读 · 0 评论 -
leetcode230.二叉搜索树中第k小的元素
利用二叉搜索树中序遍历序列是升序序列性质。,请你设计一个算法查找其中第。小的元素(从 1 开始计数)。给定一个二叉搜索树的根节点。原创 2024-12-13 17:36:39 · 296 阅读 · 0 评论 -
leetcode98.验证二叉搜索树
根节点的值是 5 ,但是右子节点的值是 4。思路:根据二叉搜索树中序遍历是严格升序序列解题。,判断其是否是一个有效的二叉搜索树。给你一个二叉树的根节点。原创 2024-12-11 13:05:52 · 286 阅读 · 0 评论 -
leetcode108.将有序数组转换为二叉搜索树
思路:首先为不知道啥是二叉搜索树的小伙伴解释下,二叉树搜索树简单来说就是左节点小于根节点,右节点大于根节点。所谓平衡则指左右子树高度差不超过1。解题思路就是为了实现平衡二叉搜索树的平衡条件,总是选择中间元素作为下一个节点。这道题是简单题,怎么说呢,知道这个切入点直接秒,不知道就gg~[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。排列,请你将其转换为一棵平衡二叉搜索树。原创 2024-12-11 12:57:11 · 377 阅读 · 0 评论 -
leetcode102.二叉树的层序遍历
(即逐层地,从左到右访问所有节点)。原创 2024-12-10 15:20:04 · 422 阅读 · 0 评论 -
leetcode543.二叉树的直径
进阶版·,左右子树深度之和就是经过当前节点的当前最大直径// 左右子树深度之和就是经过当前节点的当前最大直径。3 ,取路径 [4,2,1,3] 或 [5,2,1,3] 的长度。这条路径可能经过也可能不经过根节点。是指树中任意两个节点之间最长路径的。给你一棵二叉树的根节点,返回该树的。由它们之间边数表示。原创 2024-12-09 17:39:50 · 432 阅读 · 0 评论 -
leetcode226.翻转二叉树
翻转这棵二叉树,并返回其根节点。给你一棵二叉树的根节点。原创 2024-12-07 18:08:55 · 335 阅读 · 0 评论 -
leetcode104.二叉树的最大深度
思路:根节点深度=当前根节点深度+max(左子树深度,右子树深度)注意:每次计算子树深度时从0开始计数。是指从根节点到最远叶子节点的最长路径上的节点数。原创 2024-12-06 20:13:37 · 432 阅读 · 0 评论 -
leetcode94.二叉树的中序遍历
碎碎念:当你做到二叉树,就正式进入递归的世界了,山里有座庙...定一个二叉树的根节点。原创 2024-12-06 18:53:37 · 259 阅读 · 0 评论