我和我
我和我
全部文章
分类
面试必刷TOP101(101)
题解(130)
归档
标签
去牛客网
登录
/
注册
我和我的博客
TA的专栏
30篇文章
1人订阅
面试必刷TOP101
30篇文章
515人学习
全部文章
(共232篇)
题解 | #用两个栈实现队列#TOP42
思路: 1.一个栈存值 2.取值的时候,如果第二个栈是空的,则把第一个栈的元素全部取出,放到栈2中,栈2取出元素不就符合先进先出了么 import java.util.Stack; public class Solution { Stack<Integer> stack1 = ...
2022-07-11
0
234
题解 | #输出二叉树的右视图#TOP41
思路: 1.根据TOP40, 我们知道由前序遍历、中序遍历,怎么构建出一棵树 2.根据TOP26,我们知道怎么实现树的层序遍历 3.层序遍历,每层最后一个节点组成的视图就是右视图 import java.util.*; public class Solution { /** *...
2022-07-11
0
311
题解 | #重建二叉树#TOP40
思路: 1.中序遍历 和 前序遍历 2.左子树 根 右子树 // 根 左子树 右子树 3.以前序遍历的第一个节点是根节点,在中序遍历中找出此根节点。计算出左子树的长度和右子树的长度。遍历递归即可。 import java.util.*; /** * Definition for bi...
2022-07-10
0
297
题解 | #序列化二叉树#TOP39
思路: 1.递归,最要是考虑好空节点用什么符号代替和解析 2.前序遍历,如果是空节点则用$! ,每个节点后加! 3.使用栈的形式实现前序遍历,序列化会有问题,没有解决,后改为递归 import java.util.*; /* public class TreeNode { int val =...
2022-07-10
0
257
题解 | #在二叉树中找到两个节点的最近公共祖先#TOP38
思路: 1.两个节点对应的val值 o1 和 o2,对于任意一个节点,如果值和o1.val 和 o2.val一样,那就是找到了o1 或者o2节点了 2.从任意A节点出发(根节点), 先出左子树找,如果能找到o1 或者 o2, 右子树也能找到o1 或者o2,那说明,最近公共祖先就是A节点,否则肯定有一...
2022-07-09
0
375
题解 | #二叉搜索树的最近公共祖先#TOP37
思路: 二叉搜索树:左边的节点比根节点小,右边的节点比根节点大 1.递归。当两个节点分别在当前节点的左子树和右子树上时,该节点就是最近的公共祖先。题目要求是深度尽可能最大。否则我直接树顶部节点就是公共祖先,还做啥题目。如果当两个节点都在左边或者右边时,就继续递归求解即可 2.路径判断法。先求出两个节...
2022-07-09
0
276
题解 | #判断是不是平衡二叉树#TOP36
思路: 1.平衡二叉树:左子树和右子树的高度相差不超过1 2.先计算当前左子树的高度和右子树的高度是否相差小于等于1,如果是那说明是平衡的,需要再进行判断当前左子树和右子树,他们的左右子树是否满足平衡条件,不断递归下去 3.递归条件isBanalced(root.left) && i...
2022-07-08
0
307
题解 | #判断是不是完全二叉树#TOP35
思路: 1.还记得层序遍历吗?BFS 2.层序遍历,每一层都入队,如果检测到有一层,前面节点是空的,后面有节点不是空的,那必须不是完全二叉树了 3.完全二叉树,就是叶子节点中,非空节点前都是非空节点 import java.util.*; /* * public class TreeNode {...
2022-07-08
0
245
题解 | #判断是不是二叉搜索树#TOP34
思路: 1.二叉搜索树,左边的节点比根小,右边的节点比根大。中序遍历的结果是从小到大排序的 2.递归,树的中序遍历,拿到中间节点后,比较是否当前的数比前面的数小,小就不是二叉搜索树 3.看之前的中序遍历TOP24,我们还可以用栈的做法实现。 import java.util.*; /* * pu...
2022-07-06
0
332
题解 | #二叉树的镜像#TOP33
思路: 1.递归 2.其实镜像就是将左右节点替换一下。第一次将左子树和右子树的节点替换一下,就是右边的树移到左边了,左边的树移到右边了。然后不断递归他们的子树 import java.util.*; /* * public class TreeNode { * int val = 0; ...
2022-07-06
0
300
首页
上一页
2
3
4
5
6
7
8
9
10
11
下一页
末页