Afauria
Afauria
全部文章
分类
未归档(1)
题解(49)
归档
标签
去牛客网
登录
/
注册
刷题路漫漫
题解
全部文章
(共9篇)
题解 | #二叉树的镜像#
描述 操作给定的二叉树,将其变换为源二叉树的镜像。 思路1:广度优先遍历 使用栈 使用栈进行层序遍历:从左往右加入,弹出的时候变成从右往左。再交换左右节点 8入栈 弹出8。将6和10入栈 交换6和10 弹出10。将9和11入栈 交换9和11 弹出6。将5和7入栈 交换5和7 public cl...
Java
二叉树
递归
栈
队列
深度优先搜索
广度优先搜索
2022-04-25
0
273
题解 | #树的子结构#
描述 输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构) 假如给定A为{8,8,7,9,2,#,#,#,#,4,7},B为{8,9,2},2个树的结构如下,可以看出B是A的子结构 思路:递归 递归遍历大树的每个节点,和小树进行比较。时间复杂度O(MN)。M为A的节...
Java
二叉树
递归
队列
2022-04-25
0
265
题解 | #重建二叉树#
描述 给定节点数为 n 的二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示。 思路1:递归+分治 前序遍历:根左右 中序遍历:左根右 前序遍历第一...
Java
二叉树
栈
递归
2022-04-24
0
336
题解 | #二叉搜索树的第k个节点#
描述 给定一棵结点数为n 二叉搜索树,请找出其中的第 k 小的TreeNode结点值。 返回第k小的节点值即可 不能查找的情况,如二叉树为空,则返回-1,或者k大于n等等,也返回-1 保证n个节点的值不一样 思路1:递归 二叉搜索树中序遍历可得升序数组 public class Solution...
Java
二叉树
栈
递归
二叉搜索树
2022-04-23
0
307
题解 | #按之字形顺序打印二叉树#
描述 给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替) 思路1:队列层序遍历 public class Solution { public ArrayList<ArrayList<Integer> > Print(Tree...
Java
二叉树
队列
递归
2022-04-23
0
331
题解 | #二叉树的深度#
描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度,根节点的深度视为 1 。 思路1:递归 public class Solution { public int TreeDepth(TreeNode root) { ...
Java
二叉树
队列
递归
2022-04-23
0
309
题解 | #单链表的排序#
描述 给定一个节点数为n的无序单链表,对其按升序排序。 思路1:辅助数组 遍历保存到数组中 对数组排序 重新构造链表 思路2:小顶堆 遍历构造小顶堆,遍历过程中 再一个一个取出,连接 public class Solution { public ListNode sortInList...
Java
链表
双指针
递归
分治
2022-04-19
0
506
题解 | #跳台阶#
描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 数据范围:1<=n<=40 思路1:斐波那契数列 分治法:从上往下分治递归 假设n=5 最后一次可以跳1级,也可以跳2级,因此计算跳到第4级和第3级的路径...
Java
动态规划
递归
2022-04-17
0
390
题解 | #链表中倒数最后k个结点#
描述 输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。 如果该链表长度小于k,请返回一个长度为 0 的链表。 要求:空间复杂度 O(n),时间复杂度 O(n) 进阶:空间复杂度 O(1),时间复杂度 O(n) 类似题目:删除链表的倒数第n个节点 思路1:列表...
Java
双指针
链表
递归
2022-04-05
0
357