刷题
文章平均质量分 53
刷题记录
一个很酷的女巫_
稳扎稳打,一步一个脚印。
展开
-
数据结构 二叉树常考面试题---检查两棵树是否相同
OJ链接:检查两棵树是否相同题目描述:给你两棵二叉树的根节点p和q,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例:思路:传入两棵二叉树的根节点,首先判断两个根节点是否为空,如果两个根节点都为空,则两棵树相同,若两棵树中只有一颗树是空树,则这两棵树一定不相同,再判断根节点是否相同,若不同,则这两棵树也一定不相同,最后递归判断根节点的左子树和右子树是否相同。public class Num100 ...原创 2022-03-04 00:13:48 · 783 阅读 · 0 评论 -
数据结构 二叉树的四种遍历方式(基础面试题)
一、二叉树的前序遍历1、递归原创 2022-03-10 22:17:12 · 1578 阅读 · 0 评论 -
数据结构 二叉树常考面试题---二叉树的最大深度
OJ链接:二叉树的最大深度题目描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:思路:运用Math.max()判断左右子树的最大深度。public class Num104 { public int maxDepth(TreeNode root) { if(root==null){ return 0; } ...原创 2022-03-07 01:36:48 · 326 阅读 · 0 评论 -
数据结构 栈和队列常考面试题--设计循环队列
OJ链接:设计循环队列循环队列相关知识点见之前的博客内容。题目描述:设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircularQueue(k): 构原创 2022-02-28 17:06:30 · 177 阅读 · 0 评论 -
数据结构 二叉树常考面试题---对称二叉树
OJ链接:对称二叉树题目描述:给定一个二叉树,检查它是否是镜像对称的。示例:思路一:递归实现。判断左子树的左树和右子树的右树以及左子树的右树和右子树的左树是否镜像(对称)。public class Num101 {//递归实现 public boolean isSymmetric(TreeNode root) { if (root == null) { return true; } return.原创 2022-03-08 00:57:08 · 315 阅读 · 0 评论 -
数据结构 二叉树进阶面试题
1、二叉树的构建及遍历:OJ链接描述:编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。输入描述:输入包括1行字符串,长度不超过100。输出描述:可能有多组测试数据,对于每组数据, 输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。 每个输出结果占一行。原创 2022-03-16 15:31:54 · 1095 阅读 · 0 评论 -
数据结构 二叉树常考面试题---另一棵树的子树
题目描述:给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。示例:思路:先判断两棵树是否为空,若都为空,返回true,若只有一个为空,返回false,然后就判断subroot是否与root相同或者subroot是root的左子树或者...原创 2022-03-05 18:47:44 · 373 阅读 · 0 评论 -
数据结构 二叉树常考面试题---判断一棵二叉树是否为平衡二叉树
OJ链接:判断一棵二叉树是否为平衡二叉树题目描述:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1 。示例:思路: 先判断二叉树是否为空,若为空返回true,否则使用maxDepth函数求得该节点左右子树的最大深度,若深度>1,返回false,否则递归去看每一个节点的左右子树。优化思路:若每一次求某个节点的左右子树高度都调用mapDepth函数,则会有一些节...原创 2022-03-08 22:51:17 · 292 阅读 · 0 评论 -
数据结构 栈和队列常考面试题--用队列实现栈
OJ链接:用队列实现栈题目描述:请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。注意:· 你只能使用队列的基本操作 —— 也就是push to bac..原创 2022-02-24 13:52:27 · 161 阅读 · 0 评论 -
数据结构 栈和队列常考面试题---括号匹配问题
OJ链接:括号匹配问题题目描述:给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例2:输入:s = "()[]{}"输出:true示例3:输入:s = "(]"输出:false示例4:输入:s = "([)]"输出:false示例5:输入:s = "{[]}"...原创 2022-02-23 13:55:33 · 609 阅读 · 0 评论 -
数据结构 栈和队列常考面试题--用栈实现队列
OJ链接:用栈实现队列题目描述:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false说明:你只能使用标准的栈操作 —— 也就是只有push to top,...原创 2022-02-26 00:56:39 · 287 阅读 · 0 评论 -
数据结构 栈和队列常考面试题--实现一个最小的栈
OJ链接:实现一最小栈题目描述:设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop()—— 删除栈顶的元素。top()—— 获取栈顶元素。getMin() —— 检索栈中的最小元素。提示:pop、top和getMin操作总是在非空栈上调用。示例:输入:["MinStack","push","push","push","getMin","pop","top","get...原创 2022-02-27 18:35:00 · 396 阅读 · 0 评论