牛客228195230号
牛客228195230号
全部文章
题解
归档
标签
去牛客网
登录
/
注册
牛客228195230号的博客
全部文章
/ 题解
(共67篇)
【剑指offer】字符串的排列
题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。1、思路分析动态规划或递归的思想。将字符串转换为字符数组,双指针,第一个指针指向开始处,第二个指针依次向右移动(一开始...
2020-05-30
0
436
【剑指offer】二叉搜索树与双向链表
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。1、思路分析二叉搜索树的中序遍历,同时需要改变结点的指向关系。首先找到二叉搜索树最右边的结点,并将这个过程中经过的结点入栈。接下来就进行弹出操作,保存在cur中,需要尤其注意利用...
2020-05-30
0
345
【剑指offer】复杂链表的复制
题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)1、思路分析拷贝的过程中注意初始化节点的值2、代码 pub...
2020-05-30
0
481
【剑指offer】二叉树和为某一值的路径
题目描述输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。1、思路分析思路为二叉树的深度优先遍历,首先新建两个全局变量分别存储所有合适的路径和当前走过的路径。在FindPath方法中,跳出递归的条件为r...
2020-05-30
0
468
【剑指offer】二叉搜索树的后续遍历序列
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。1、思路分析二叉搜索树的特点:左结点<根节点<右节点。后序遍历的定义是左右根,因此如果该整数数组是后序遍历的结果,最后一个元素一定是根节点,将...
2020-05-29
0
452
【剑指offer】从上往下打印二叉树
题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。1、思路分析从左至右的顺序打印联想到队列这种数据结构,但仍需注意入队和出队的逻辑。首先将根节点添加进队列,接着进行当队列不为空的循环,在循环里,先弹出队首元素,并将其保存在值TreeNode类型的t中,因为后续我们还需获得t的左右结点情况...
2020-05-28
0
473
【剑指offer】栈的压入、弹出序列
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度...
2020-05-27
0
403
【剑指offer】包含min函数的栈
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。1、思路分析将此类题归类为利用已知数据结构实现新方法,尤其注意的是,我们是可以直接调用固有方法的,并不...
2020-05-26
0
341
【剑指offer】顺时针打印矩阵
题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.1、思路分析关键在于求...
2020-05-25
0
360
【剑指offer】二叉树的镜像
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。1、思路分析采用递归算法。首先判断特殊情况也即递归跳出的条件,当前root结点为空或者其左右子树均为空。接着是交换当前结点的左右结点,使用中间结点tmp进行过渡,交换完成后,进行递归调用,左右结点的调用顺序可以随意。非递归算法需要使用栈,先将根结点...
2020-05-24
0
358
首页
上一页
1
2
3
4
5
6
7
下一页
末页