自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 力扣98_验证二叉搜索树

题目描述:给定一个二叉树,判断其是否是一个有效的二叉搜索树。示例:算法思想:一看,这道题似乎非常容易,提手就能写以下代码public boolean isValidBST(TreeNode root) { if(root == null) return true; if(root.left != null && root.left.val > root.val) return false; if(root.right != null && ro

2021-05-25 21:48:04 194

原创 力扣450_删除二叉搜索树中的节点

题目描述:给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤:首先找到需要删除的节点;如果找到了,删除它。示例:算法思想:根据递归的思想,我们很容易写出如下代码TreeNode deleteNode(TreeNode root, int key) { if (root.val == key) { // 找到啦,进行删

2021-05-25 21:18:50 153

原创 力扣538_二叉搜索树转换为累加树*

题目描述:给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。算法思想:一拿到题目,我们先思考用二叉树的什么遍历方式,首先好像很容易看出,一个节点的累加值似乎等于它的右子树累加值加上它本身,但是仔细观察不然,比如5那个节点,它的累加值就是它的父节点加上它的本身,我们又没有父节点的指针,所以似乎不可行。二叉搜索树的特性不免让我们想到中序遍历,如果这棵树用中序遍历会从小

2021-05-20 20:07:00 150

原创 力扣230_二叉搜索树中第k小的元素

题目描述:给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。示例:算法思想:借助二叉搜索树得天独厚的优势–典型的中序遍历思想我们知道中序遍历可以从小到大的打印二叉搜索树traverse(root.left);print(root.val);traverse(root.right);借助这样的思想,我们可以用一个rank变量做排名,和打印一样,从小到大,当排到k时,返回输出即可。代码实现:class Soluti

2021-05-19 17:04:10 214

原创 Linux(Ubuntu)环境下构建JDK12编译环境(超详细!)

文章目录一、前期准备1.安装OpenJDK122.下载前置工具3.下载编译jdk12的jdk11二、进行编译1.编译前配置2.开始编译三、使用自己编译的JDK1.进行全局配置2.验证是否生效注意:编译jdk很吃配置!!!所以一定要把虚拟机配置调高进行,我的虚拟机运行内存是8G,分配空间50G(后序编译文件占20G左右)一、前期准备1.安装OpenJDK12官网地址:https://hg.openjdk.java.net/jdk/jdk12/点击左侧栏browse,下载zip文件解压到文件夹准

2021-05-19 15:56:48 1304 1

原创 力扣652_寻找重复的子树

题目描述:给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。两棵树重复是指它们具有相同的结构以及相同的结点值。需要以列表的形式返回上述重复子树的根结点。算法思想:所有的二叉树问题,都逃不过那三个遍历,首先思考我们的问题属于三者中的哪一种。首先,对于某一个节点,它应该做什么?假如我现在站在这个2节点上,想知道以自己为根的子树是不是重复的,该不该加入重复列表中。那么我要知道两个问题:以我为根的子树长啥样其他节点为根的子树长啥样怎么知道自

2021-05-18 23:12:17 218 3

原创 力扣105_从前序与中序遍历序列构造二叉树

题目描述:根据一棵树的前序遍历与中序遍历构造二叉树。(假设树中没有重复元素)例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:算法思想:前序遍历是“根左右”,中序遍历是“左根右”,我们先举例看一下内部关系m代表根节点,l代表根节点的左子树,r代表根节点的右子树。不难发现,根节点的左子树和根节点的右子树它们分别又是同样的处理流程,也就是说,可以使用同样的函数递归处理。先给出代码:public

2021-05-14 11:41:40 207

原创 力扣654_最大二叉树

题目描述:给定一个不含重复元素的整数数组 nums 。一个以此数组直接递归构建的 最大二叉树 定义如下:1.二叉树的根是数组 nums 中的最大元素。2.左子树是通过数组中 最大值左边部分 递归构造出的最大二叉树。3.右子树是通过数组中 最大值右边部分 递归构造出的最大二叉树。返回有给定数组 nums 构建的 最大二叉树 。示例:输入nums = [3,2,1,6,0,5] 返回如下图所示的树算法思想:题目已经明确给出了思路–运用递归,对于构造二叉树的问题,根节点要做的就是把想办法把自己构

2021-05-11 21:34:45 175

原创 力扣114_二叉树展开为链表

题目描述:给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。算法思想:这道题的函数是 void flatten(TreeNode root) ,我们尝试给出函数定义:给 flatten 函数输入一个节点 root,那么以 root 为根的二叉树就会被拉平为一条链表。具体流程如下:将 root 的左子树和右子树拉平

2021-05-07 20:00:00 213

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除