Loading

摘要: 543. 二叉树的直径 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 **示例 😗* 给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 * 阅读全文
posted @ 2021-01-17 23:45 反身而诚、 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的 阅读全文
posted @ 2021-01-17 23:39 反身而诚、 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 68 - II. 二叉树的最近公共祖先 难度简单178 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以 阅读全文
posted @ 2021-01-17 23:22 反身而诚、 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 114. 二叉树展开为链表 给定一个二叉树,原地将它展开为一个单链表。 例如,给定二叉树 1 / \ 2 5 / \ \ 3 4 6 将其展开为: 1 \ 2 \ 3 \ 4 \ 5 \ 6 方法一:递归先序遍历保存进List public void flatten(TreeNode root) { 阅读全文
posted @ 2021-01-17 23:13 反身而诚、 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 538. 把二叉搜索树转换为累加树 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下,二叉搜索树满足下列约束条件: 节点的左子树仅包含键 小于 节点键的 阅读全文
posted @ 2021-01-17 23:04 反身而诚、 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 230. 二叉搜索树中第K小的元素 难度中等338 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。 说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。 示例 1: 输入: root = [3,1,4,null,2], k = 1 3 阅读全文
posted @ 2021-01-17 22:59 反身而诚、 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 54. 二叉搜索树的第k大节点 给定一棵二叉搜索树,请找出其中第k大的节点。 示例 1: 输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2 输出: 4 示例 2: 输入: root = [5,3,6,2,4,null,null,1], k 阅读全文
posted @ 2021-01-17 22:52 反身而诚、 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 94. 二叉树的中序遍历 难度中等826 给定一个二叉树的根节点 root ,返回它的 中序 遍历。 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 示例 4: 输 阅读全文
posted @ 2021-01-17 22:44 反身而诚、 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 98. 验证二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入: 2 / \ 1 3 输出: true 示例 2: 阅读全文
posted @ 2021-01-17 22:34 反身而诚、 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 55 - II. 平衡二叉树 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回 tr 阅读全文
posted @ 2021-01-17 22:13 反身而诚、 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 55 - I. 二叉树的深度 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大 阅读全文
posted @ 2021-01-17 22:04 反身而诚、 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 617. 合并二叉树 给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。 示例 1: 输入: Tree 1 阅读全文
posted @ 2021-01-17 22:01 反身而诚、 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 27. 二叉树的镜像 请完成一个函数,输入一个二叉树,该函数输出它的镜像。 例如输入: 4 / \ 2 7 / \ / \ 1 3 6 9 镜像输出: 4 / \ 7 2 / \ / \ 9 6 3 1 示例 1: 输入:root = [4,2,7,1,3,6,9] 输出:[4,7 阅读全文
posted @ 2021-01-17 21:52 反身而诚、 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 28. 对称的二叉树 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3 阅读全文
posted @ 2021-01-17 21:42 反身而诚、 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 347. 前 K 个高频元素 给定一个非空的整数数组,返回其中出现频率前 *k* 高的元素。 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], k = 1 输出: [1] 提示: 你可以假设给定的 k 总是合理 阅读全文
posted @ 2021-01-17 21:05 反身而诚、 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 215. 数组中的第K个最大元素 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 示例 2: 输入: [3,2,3,1,2,4,5,5,6] 和 阅读全文
posted @ 2021-01-17 20:05 反身而诚、 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 75. 颜色分类 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,**原地**对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 **注意:**请不要使用代码库中的排序函数来解决这道题。 进阶: 你能想出 阅读全文
posted @ 2021-01-17 17:17 反身而诚、 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 示例: 输入:nums = [1,2,3,4] 输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。 解题 阅读全文
posted @ 2021-01-17 16:17 反身而诚、 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 40. 最小的k个数 输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 示例 1: 输入:arr = [3,2,1], k = 2 输出:[1,2] 或者 [2,1] 示例 2: 输入:arr 阅读全文
posted @ 2021-01-17 15:55 反身而诚、 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 65. 不用加减乘除做加法 写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。 示例: 输入: a = 1, b = 1 输出: 2 提示: a, b 均可能是负数或 0 结果不会溢出 32 位整数 解题思路 学过计算机组成原理的都知 阅读全文
posted @ 2021-01-17 15:26 反身而诚、 阅读(58) 评论(0) 推荐(0) 编辑