牛牛想要一个面试
牛牛想要一个面试
全部文章
分类
归档
标签
去牛客网
登录
/
注册
牛牛想要一个面试的博客
全部文章
(共80篇)
题解 | #重建二叉树#
思路:利用前序中序遍历的性质,首先在前序中找到根节点,那么在中序遍历中,根节点的左边一定是他的左子树,右边是右子树,然后根据这个特点,对左和右子树继续进行递归 TreeNode* reConBTree(vector<int> pre,int preleft,int preright,ve...
2023-01-15
0
269
题解 | #序列化二叉树#
1.思路:序列化即将二叉树的节点值取出,放入一个字符串中,我们可以按照前序遍历的思路,遍历二叉树每个节点,并将节点值存储在字符串中,我们用‘#’表示空节点,用‘!'表示节点与节点之间的分割。反序列化即根据给定的字符串,将二叉树重建,因为字符串中的顺序是前序遍历,因此我们重建的时候也是前序遍历,即可还...
2023-01-12
0
306
题解 | #在二叉树中找到两个节点的最近公共祖先#
1.递归思路:我们也可以讨论几种情况:step 1:如果o1和o2中的任一个和root匹配,那么root就是最近公共祖先。step 2:如果都不匹配,则分别递归左、右子树。step 3:如果有一个节点出现在左子树,并且另一个节点出现在右子树,则root就是最近公共祖先.step 4:如果两个节点都出...
2023-01-12
0
344
题解 | #二叉搜索树的最近公共祖先#
1.先获取遍历到所取数值的序列,然后比较两个序列最远相同的数,即其最近公共祖先 /** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) :...
2023-01-12
0
291
题解 | #判断是不是平衡二叉树#
思路:平衡二叉树任意节点两边的子树深度相差绝对值不会超过1,且每个子树都满足这个条件,那我们可以对每个节点找到两边的深度以后: int deep(TreeNode root){ if(root == null) return 0; int left = deep(r...
2023-01-11
0
262
题解 | #判断是不是完全二叉树#
1.思路:对完全二叉树最重要的定义就是叶子节点只能出现在最下层和次下层,所以我们想到可以使用队列辅助进行层次遍历——从上到下遍历所有层,每层从左到右,只有次下层和最下层才有叶子节点,其他层出现叶子节点就意味着不是完全二叉树。具体做法:step 1:先判断空树一定是完全二叉树。step 2:初始化一个...
2023-01-11
0
302
题解 | #判断是不是二叉搜索树#
1.中序遍历递归 /** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(n...
2023-01-11
0
325
题解 | #二叉树的镜像#
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {...
2023-01-10
0
230
题解 | #合并二叉树#
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ class Solution { public: /** * * @...
2023-01-10
0
181
题解 | #对称的二叉树#
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(N...
2023-01-10
0
285
首页
上一页
1
2
3
4
5
6
7
8
下一页
末页