青叶摩卡
青叶摩卡
全部文章
分类
归档
标签
去牛客网
登录
/
注册
青叶摩卡的博客
TA的专栏
0篇文章
0人订阅
面试高频榜单思路
0篇文章
0人学习
面试高频榜单思路梳理
0篇文章
0人学习
面试高频榜单思路梳理
0篇文章
0人学习
全部文章
(共136篇)
题解 | #二叉搜索树与双向链表#
基本思路:二叉搜索树要转换成排序链表,必然是左中右的中序遍历函数返回值是双向链表的头节点,而每次遍历节点需要的是当前节点中序遍历下的先驱节点,所以需要一个额外指针bef记录先驱节点先按照左中右的遍历顺序遍历左子树,然后将先驱节点与当前节点连接,此时需要遍历右子树了,所以需要让先驱节点指向当前节点,再...
2022-12-05
0
210
题解 | #复杂链表的复制#
自己思考只想出hash表一种解法,参考精华题解的思路给出不使用额外空间的解法:第一次遍历:复制:在原链表的每一个节点后插入使用该节点复制的新节点,这样原链表节点的next指向其复制的节点,而复制节点的next指向原链表节点的下一个节点。第二次遍历:处理random指针:如果原链表节点的random指...
2022-12-04
0
242
题解 | #二叉树中和为某一值的路径(二)#
基本思路:寻找所有满足条件路径的二叉树遍历问题一律尝试用void返回值的dfs正常的遍历模板,如果遍历到当前root->val==target时判断其是否为叶子节点,如果是则在res集合中添加一条路径;如果不是叶子节点,因为二叉树中可能有负数,所以从当前节点到叶子节点的路径可能为0,最终仍然得...
2022-12-04
0
221
题解 | #二叉搜索树的后序遍历序列#
基本思路:后序遍历的顺序是左右中,所以能确定的是数组最后一个数一定是根节点的值二叉搜索树的性质是左子树的值都小于根节点的值,而右子树的值都大于根节点的值可以根据这个性质尝试将数组划分为三块,从左到右分别是小于根节点的部分(左子树)、大于根节点的部分(左子树)、根节点,如果划分失败则直接返回false...
2022-12-04
0
313
题解 | #从上往下打印二叉树#
很简单的BFS层序遍历,基本操作了。借助队列存储当前层的节点的非空子节点。class Solution { public: vector<int> PrintFromTopToBottom(TreeNode* root) { if (!root) return {}; q...
2022-12-04
0
290
题解 | #栈的压入、弹出序列#
基本思路:用栈模拟,如果满足序列指针就在popV上右移,最后如果指针移到了popV末尾,就说明满足条件。class Solution { public: bool IsPopOrder(vector<int> pushV,vector<int> popV) { ...
2022-12-04
0
290
题解 | #包含min函数的栈#
基本思路:维护两个栈,一个栈正常进出,一个栈单调递减,如果当前push的值大于top,则直接push top值而不是当前push的值。优化思路:维护一个栈,每次push时同时push当前最小值与当前值两次即可。为了避免频繁操作取最小值,用int变量记录当前的最小值。class Solution { ...
2022-12-04
0
257
题解 | #顺时针打印矩阵#
class Solution { public: vector<int> printMatrix(vector<vector<int> > matrix) { vector<int> res; int m = m...
2022-12-04
0
234
题解 | #二叉树的镜像#
递归,先交换左右子树,然后对左右子树递归求解。Morris遍历算法太复杂了,就不强求常数空间复杂度了。。。class Solution { public: TreeNode* Mirror(TreeNode* pRoot) { if (!pRoot) return nullp...
2022-12-04
0
192
题解 | #树的子结构#
分为三种情况:pRoot1->val == pRoot2->val:需要检查pRoot2的左子树、右子树是否分别是pRoot1的左子树、右子树的子树,如果都是则返回true,否则还有可能是情况2、3。pRoot2是pRoot1左子树的子树,递归调用即可。pRoot2是pRoot1右子树的...
2022-12-04
0
232
首页
上一页
5
6
7
8
9
10
11
12
13
14
下一页
末页