首页
学习
活动
专区
工具
TVP
发布

赵俊的Java专栏

专栏成员
174
文章
231447
阅读量
44
订阅数
LeetCode 606 Construct String from Binary Tree
给予一颗二叉树,根据前序遍历构建一个字符串, 不过需要在每个元素和他的子元素的外层用 () 包住, 并且需要你不会影响字符串和原始二叉树之间一一对应关系的空括号对.
一份执着✘
2019-12-30
4550
MySQL 索引
数据库的索引是一个要点, 无论是面试还是在工作中, 这个知识点都很常会用到, 你可能只是用过索引, 知道加了索引可以提高查询的性能, 但不知道为什么这样, 今天我们一起来详细了解下吧.
一份执着✘
2019-12-30
2.8K0
LeetCode 965 Univalued Binary Tree
判断二叉树是否是 唯一二叉树. 当树中所有节点的值都一样时,我们认为他是一颗 唯一二叉树。
一份执着✘
2019-12-30
3090
LeetCode 344 Merge Two Binary Trees
基本思路是将两棵树, 合并到左树上, 基本规则是只有当 tree1 和 tree2 相同位置的节点都不为空时, 才能进行相加操作, 当 tree1 为空时, 把 tree2 的节点嫁接过来, 当 tree2 为空时, 保留 tree1 即可. 以此类推, 把每个节点都看成根节点即可.
一份执着✘
2019-12-30
3520
LeetCode 654 Maximum Binary Tree
题意 给定一个整数数组,生成一棵 最大二叉树,规则是数组中的最大值为根节点,然后分割出最大值左侧的子数组再构造 最大二叉树,最大值的右侧也构造成 最大二叉树。 例 : 输入: [3,2,1,6,0,5] 输出: 返回表示以下树的根节点: 6 / \ 3 5 \ / 2 0 \ 1 解法 根据题意,是经典的分而治之的题目,用递归就可以很简单的实现: public TreeNode constructM
一份执着✘
2019-12-30
3450
二叉树层序遍历为二维数组
题意 有一棵二叉树,请设计一个算法,按照层次打印这棵二叉树。 给定二叉树的根结点 root,请返回打印结果,结果按照每一层一个数组进行储存,所有数组的顺序按照层数从上往下,且每一层的数组内元素按照从左往右排列。保证结点数小于等于 500。 样例 3 / \ 5 2 / \ / \ 8 3 4 1 输出结果应为 [[3], [5, 2], [8, 3, 4, 1]] 思路 其实这就是一个二叉树层序遍历的一道题,只不过需要判断什么时候换
一份执着✘
2018-06-04
1.5K0
平衡二叉树
题意 给定一个二叉树,确定它是高度平衡的。对于这个问题,一棵高度平衡的二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过 1。 样例 A) 3 B) 3 / \ \ 9 20 20 / \ / \ 15 7 15 7 二叉树 A 是高度平衡的二叉树,但是 B 不是。 思路 这道题利用了 二叉树的最大深度 这
一份执着✘
2018-06-04
7140
镜像二叉树
题意 操作给定的二叉树,将其变换为源二叉树的镜像。 样例 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5 思路 递归法 递归的终止条件就是当前树为 null 或该树的左子树与右子树都为 null。 递归操作是交换当前数的左右子树。 递归条件: 当前数的左子树不为空时对左字树进行递归操作。 当前数的右子树不为空时对右子树进行递归操作。
一份执着✘
2018-06-04
6410
二叉树的所有路径
题意 给一棵二叉树,找出从根节点到叶子节点的所有路径。 样例 给出下面这棵二叉树: 1 / \ 2 3 \ 5 所有根到叶子的路径为: [ "1->2->5", "1->3" ] 思路 如某一个节点,没有子节点则将本身的值加入到集合中,如果有子节点,则将在子节点的路径之前加上当前节点。 代码实现 /** * Definition of TreeNode: * public class TreeNode { * public int val; * pu
一份执着✘
2018-06-04
6180
对称的二叉树
题意 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 样例 A). 3 / \ 1 1 / \ / \ 6 4 4 6 B). 3 / \ 1 2 / \ / \ 7 4 5 6 A 与 B 在结构上都是对称的,但是本题的题意是指也对应,所以 A 树是一颗对称二叉树,B 树不是一颗对称的二叉树。 思路 观察上方的样例可得结论: 根节点的左右节点的值是相同
一份执着✘
2018-06-04
3100
二叉树的最大深度
题意 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的距离。 样例 给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5 这个二叉树的最大深度为 3. 思路 递归法 用递归分别遍历每个节点 ,返回相对于当前节点的最大深度(记得加上根节点)。 循环法 非递归写法可以用一个队列来存储,先将根节点存入,并记录当前节点的兄弟节点个数(指来自同一个父节点),当兄弟节点都出队列完毕,就对子节点进行与根节点同样的操作。 代码实现 递归法 /** * Definiti
一份执着✘
2018-06-04
9270
排序链表转换为二分查找树
题意 给出一个所有元素以升序排序的单链表,将它转换成一棵高度平衡的二分查找树 样例 2 1->2->3 => / \ 1 3 3 1->2->3->4->5->6 => / \ 1 5 / \ / \ # 2 4 6 思路 本题要求是高度平衡的二叉树,那
一份执着✘
2018-06-04
8240
前序遍历和中序遍历树构造二叉树
题意 根据前序遍历和中序遍历树构造二叉树. 注意事项: 你可以假设树中不存在相同数值的节点 样例 给出中序遍历:[1,2,3]和前序遍历:[2,1,3]. 返回如下的树: 2 / \ 1 3 思路 根据前序遍历和中序遍历的规律可得: 前序遍历的第一个就是整个树的根节点 这个根节点在中序遍历的左侧是其左子树,右侧是右子树。 将每一个节点都看作是一个单独的树,根据此 规律1 和 规律2 依次递归获取其左右子树的前序与中序遍历,直到前序遍历或中序遍历的长度仅剩1,则说明该节点为叶子节点,从而构造
一份执着✘
2018-06-04
1.8K0
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档