树
前行follow
learning sharing and discussing.
展开
-
题目地址(04.06. 后继者)
设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。如果指定节点没有对应的“下一个”节点,则返回null。原创 2022-08-06 10:58:14 · 56 阅读 · 0 评论 -
题目地址(971. 翻转二叉树以匹配先序遍历)
给你一棵二叉树的根节点 root ,树中有 n 个节点,每个节点都有一个不同于其他节点且处于 1 到 n 之间的值。另给你一个由 n 个值组成的行程序列 voyage ,表示 预期 的二叉树 先序遍历 结果。通过交换节点的左右子树,可以 翻转 该二叉树中的任意节点。例,翻转节点 1 的效果如下:请翻转 最少 的树中节点,使二叉树的 先序遍历 与预期的遍历行程 voyage 相匹配 。 如果可以,则返回 翻转的 所有节点的值的列表。你可以按任何顺序返回答案。如果不能,则返回列表 [-1]。...原创 2022-08-05 11:24:56 · 71 阅读 · 0 评论 -
题目地址(662. 二叉树最大宽度)
给定一个二叉树,编写一个函数来获取这个树的最大宽度。树的宽度是所有层中的最大宽度。这个二叉树与满二叉树(full binary tree)结构相同,但一些节点为空。每一层的宽度被定义为两个端点(该层最左和最右的非空节点,两端点间的null节点也计入长度)之间的长度。...原创 2022-08-05 10:52:29 · 87 阅读 · 0 评论 -
题目地址(543. 二叉树的直径)
给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。原创 2022-08-05 10:39:49 · 61 阅读 · 0 评论 -
题目地址(101. 对称二叉树)
给你一个二叉树的根节点 root , 检查它是否轴对称原创 2022-08-05 10:17:07 · 53 阅读 · 0 评论 -
题目地址(894. 所有可能的真二叉树)
给你一个整数 n ,请你找出所有可能含 n 个节点的 真二叉树 ,并以列表形式返回。答案中每棵树的每个节点都必须符合 Node.val == 0 。答案的每个元素都是一棵真二叉树的根节点。你可以按 任意顺序 返回最终的真二叉树列表。真二叉树 是一类二叉树,树中每个节点恰好有 0 或 2 个子节点。...原创 2022-07-28 13:09:23 · 214 阅读 · 0 评论 -
题目地址(1530. 好叶子节点对的数量)
给你二叉树的根节点 root 和一个整数 distance 。如果二叉树中两个 叶 节点之间的 最短路径长度 小于或者等于 distance ,那它们就可以构成一组 好叶子节点对 。返回树中 好叶子节点对的数量 。...原创 2022-07-28 11:38:38 · 153 阅读 · 0 评论 -
题目地址(865. 具有所有最深节点的最小子树)
给定一个根为 root 的二叉树,每个节点的深度是 该节点到根的最短距离 。返回包含原始树中所有 最深节点 的 最小子树 。如果一个节点在 整个树 的任意节点之间具有最大的深度,则该节点是 最深的 。一个节点的 子树 是该节点加上它的所有后代的集合。...原创 2022-07-27 11:11:31 · 64 阅读 · 0 评论 -
题目地址(1026. 节点与其祖先之间的最大差值)
给定二叉树的根节点 root,找出存在于 不同 节点 A 和 B 之间的最大值 V,其中 V = |A.val - B.val|,且 A 是 B 的祖先。(如果 A 的任何子节点之一为 B,或者 A 的任何子节点是 B 的祖先,那么我们认为 A 是 B 的祖先)...原创 2022-07-27 10:55:53 · 72 阅读 · 0 评论 -
题目地址(1325. 删除给定值的叶子节点)
给你一棵以 root 为根的二叉树和一个整数 target ,请你删除所有值为 target 的 叶子节点 。注意,一旦删除值为 target 的叶子节点,它的父节点就可能变成叶子节点;如果新叶子节点的值恰好也是 target ,那么这个节点也应该被删除。也就是说,你需要重复此过程直到不能继续删除。...原创 2022-07-26 12:05:48 · 328 阅读 · 0 评论 -
题目地址(1448. 统计二叉树中好节点的数目)
给你一棵根为 root 的二叉树,请你返回二叉树中好节点的数目。「好节点」X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值。原创 2022-07-26 11:28:03 · 106 阅读 · 0 评论 -
题目地址(563. 二叉树的坡度)
给你一个二叉树的根节点 root ,计算并返回 整个树 的坡度 。一个树的 节点的坡度 定义即为,该节点左子树的节点之和和右子树节点之和的 差的绝对值 。如果没有左子树的话,左子树的节点之和为 0 ;没有右子树的话也是一样。空结点的坡度是 0 。整个树 的坡度就是其所有节点的坡度之和。...原创 2022-07-22 12:14:22 · 50 阅读 · 0 评论 -
【算法题Debug】题目地址(04.12. 求和路径)
给定一棵二叉树,其中每个节点都含有一个整数数值(该值或正或负)。设计一个算法,打印节点数值总和等于某个给定值的所有路径的数量。注意,路径不一定非得从二叉树的根节点或叶节点开始或结束,但是其方向必须向下(只能从父节点指向子节点方向)。...原创 2022-07-22 11:28:11 · 63 阅读 · 0 评论 -
题目地址(834. 树中距离之和)
给定一个无向、连通的树。树中有 n 个标记为 0...n-1 的节点以及 n-1 条边 。给定整数 n 和数组 edges , edges[i] = [ai, bi]表示树中的节点 ai 和 bi 之间有一条边。返回长度为 n 的数组 answer ,其中 answer[i] 是树中第 i 个节点与所有其他节点之间的距离之和。...原创 2022-07-21 11:41:04 · 110 阅读 · 0 评论 -
题目地址(113. 路径总和 II)
给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。原创 2022-07-21 10:29:15 · 55 阅读 · 0 评论 -
题目地址(124. 二叉树中的最大路径和)
路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。原创 2022-07-21 09:38:51 · 104 阅读 · 0 评论 -
题目地址(662. 二叉树最大宽度)
给定一个二叉树,编写一个函数来获取这个树的最大宽度。树的宽度是所有层中的最大宽度。这个二叉树与满二叉树(full binary tree)结构相同,但一些节点为空。原创 2022-07-19 11:15:09 · 59 阅读 · 0 评论 -
题目地址(173. 二叉搜索树迭代器)
实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器:BSTIterator(TreeNode root) 初始化 BSTIterator 类的一个对象。BST 的根节点 root 会作为构造函数的一部分给出。指针应初始化为一个不存在于 BST 中的数字,且该数字小于 BST 中的任何元素。boolean hasNext() 如果向指针右侧遍历存在数字,则返回 true ;否则返回 false 。int next()将指针向右移动,然后返回指针处的数字。.原创 2022-07-19 10:44:06 · 55 阅读 · 0 评论 -
树的中序遍历实现方法(递归+迭代)
给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。原创 2022-07-18 10:36:21 · 208 阅读 · 0 评论 -
题目地址(98. 验证二叉搜索树)
题目描述给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。...原创 2022-07-18 10:28:31 · 53 阅读 · 0 评论 -
题目地址(863. 二叉树中所有距离为 K 的结点)
令n为数组长度。原创 2022-07-15 11:38:38 · 52 阅读 · 0 评论 -
题目地址(669. 修剪二叉搜索树)
令n为数组长度。原创 2022-07-15 10:53:04 · 200 阅读 · 0 评论 -
题目地址(450. 删除二叉搜索树中的节点)
https://leetcode.cn/problems/delete-node-in-a-bst/前置知识公司暂无思路关键点代码语言支持:Python3Python3 Code:复杂度分析令 n 为数组长度。https://leetcode.cn/problems/delete-node-in-a-bst/solution/shan-chu-er-cha-sou-suo-shu-zhong-de-jie-n6vo/...原创 2022-07-14 11:59:23 · 45 阅读 · 0 评论 -
题目地址(37. 序列化二叉树)
https://leetcode.cn/problems/xu-lie-hua-er-cha-shu-lcof/前置知识公司暂无思路关键点代码语言支持:Python3Python3 Code:复杂度分析令 n 为数组长度。原创 2022-07-14 09:45:52 · 53 阅读 · 0 评论 -
题目地址(1372. 二叉树中的最长交错路径)
https://leetcode.cn/problems/longest-zigzag-path-in-a-binary-tree/前置知识公司暂无思路关键点代码语言支持:Python3Python3 Code:复杂度分析令 n 为数组长度。原创 2022-07-13 11:31:57 · 80 阅读 · 0 评论 -
Leetcode树题目相关模板
Leetcode树题目相关模板1. 二叉树深度遍历1.1 树的递归写法def dfs(root): if not root: return # 主要逻辑 # 前序遍历 dfs(root.left) # 主要逻辑 # 中序遍历 dfs(root.right) # 主要逻辑 # 后序遍历1.2 将树的递归改为迭代题目集合:前序遍历中序遍历后序遍历class Solution: def inorderTraversal原创 2022-04-14 10:42:10 · 239 阅读 · 0 评论 -
题目地址(34. 二叉树中和为某一值的路径)
题目地址(34. 二叉树中和为某一值的路径)题目描述给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。叶子节点 是指没有子节点的节点。 示例 1:输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22输出:[[5,4,11,2],[5,8,4,5]]示例 2:输入:root = [1,2,3], targetSum = 5原创 2022-03-25 11:36:10 · 57 阅读 · 0 评论