A202004112032279
A202004112032279
全部文章
题解
归档
标签
去牛客网
登录
/
注册
Androidla
全部文章
/ 题解
(共22篇)
二叉树的下一个节点
一. 思路 通过给出的节点的父节点指针,一直找到该二叉树的根节点,再用中序遍历弄个序列,直接for循环访问指定节点的下一个节点即可。要注意中序遍历序列的最后一个节点的后面没有节点。 二. 代码 import java.util.*; /* public class TreeLinkNode { ...
2020-12-28
0
477
重建二叉树-Java实现
一. 思路 按照纸质考试去思考很容易知道怎么解。转成代码实现应该要了解如下递归解法的模板: public TreeNode rebuild(...) { if (!...) return null; TreeNode root = new TreeNode(...); nod...
2020-12-28
0
454
二叉搜索树的第k个节点-Java实现
一. 思路 二叉搜索树的中序遍历就是一个增序排列。因此以中序遍历的思路,先找左子树最小,再找根,再找右子树,直到找到第k节点为止。非递归解法采用一个栈,一个计数器来解决 二. 非递归解法 import java.util.*; /* public class TreeNode { int v...
2020-12-27
0
449
平衡二叉树-Java实现
一. 思路 自底向上解法:按照平时做纸质考试的去思考如何判断一颗树是否平衡。采用后序遍历用自底向上递归方法,计算(左子树的深度-右子树的深度)的绝对值是否小于1,若是则平衡。 自顶向下解法:采用前序遍历一次树,计算每个节点的深度并存到map中。第二次遍历树,计算高度差是否符合平衡的要求 二. 递归解...
2020-12-27
0
621
二叉树的深度-Java实现
一. 思路 先判根节点是否为空,为空则直接返回深度为0。用层次遍历方法,每遍历一层,深度就加1。 二. 代码 import java.util.*; /** public class TreeNode { int val = 0; TreeNode left = null; ...
2020-12-27
0
469
二叉树的镜像-Java实现
一. 思路 其实就是在遍历每个节点的时候,将节点的左右孩子交换。可采用层次遍历BFS搞定。 二. 对递归解法的思考 关于的一切递归解法无非就是前序遍历、中序遍历、后序遍历。而这个序是指根节点的序。思考解题时可以按着次序遍历去思考。 三. 代码 import java.util.*; /** publ...
2020-12-27
0
425
序列化二叉树-Java
一. 思路 序列化:将树转成字串反序列化:将字串转成树 因此序列化其实就是遍历树,可采用BFS层次遍历,用队列LinkedList实现。反序列就是根据序列化的过程去解析。 注意:必须注意反序列化时,对字串中特殊符号的转换要注意是否符合Java类型转换原则 二. 代码 import java.util...
2020-12-16
0
437
从上往下打印二叉树-Java
一. 思路 用BFS广度优先遍历算法,也就是层次遍历。用队列(Java实现可以是一个LinkedList)存储树的每一层的节点。 二. 代码 import java.util.ArrayList; import java.util.*; /** public class TreeNode { ...
2020-12-16
0
417
二叉搜索树的后序遍历序列-Java
一. 思路 按照平时的判断方法去想。只理解到使用递归思想。 前序遍历是根、左子树、右子树;中序遍历是左子树、根、右子树;后序遍历是左子树、右子树、根; 核心思路就是找到根,区分左右子树,判断是否违反了二叉搜索树的原则,即左子树<根<右子树。 二. 代码 public class Solu...
2020-12-15
0
455
按之字形遍历二叉树-Java
一. 思路 核心思想是采用广度优先遍历算法,遍历二叉树的每一层,用LinkedList存储每一层的节点。遍历LinkedList就是遍历二叉树的每一层。 二. 代码 import java.util.ArrayList; import java.util.List; import java.util...
2020-12-14
0
453
首页
上一页
1
2
3
下一页
末页