mtgo666
mtgo666
全部文章
分类
Linux学习笔记(10)
STL(7)
基础算法(9)
学习笔记(10)
题解(26)
归档
标签
去牛客网
登录
/
注册
mtgo666的博客
TA的专栏
19篇文章
0人订阅
数据结构和算法
19篇文章
2934人学习
全部文章
(共9篇)
递归建立二叉树
来自专栏
1、简言 最近秋招面试,发现有的公司考察二叉树方面的算法题时需要自己建立二叉树,因此写一下建立二叉树的步骤回忆一下。 2、思路 首先需要写出二叉树的结点结构: struct TreeNode{ int val; TreeNode *left; TreeNode *right;...
C++
二叉树
2022-08-17
0
589
利用先序和中序序列构建二叉树
来自专栏
1、需求 我们知道,利用先序序列和中序序列可以唯一的确定一个二叉树,比如先序[1,2,4,5,3]和中序[4,2,5,1,3]可以构成二叉树:[1,2,3,4,5]。那思路落实到代码上应该如何写呢? 2、思路 想想我们是如何在脑海中把上述两个序列构建成二叉树的: 先构造根节点:先序序列的第一个元素...
C++
二叉树
2022-03-27
0
1112
题解 | #合并二叉树#
算法思路 一眼递归,而且我们必须开辟新的结点。所以每次开辟的根节点的值都是两个二叉树的根节点值的和。 此题的递归三要素: 递归出口:合并t1、t2的时候,当t1为空时,这个时候我们用另一个结点t2代替就行,所以返回t2。t2空同理; 明确函数功能:mergeTrees(TreeNode* t1, ...
C++
二叉树
递归
2022-03-26
0
344
二叉树的三种遍历(非递归)
来自专栏
1、简介 我们在递归的时候说到过,一般我们如果想把递归的算法转换至非递归的实现,我们可以自己利用辅助栈来代替系统栈保存一些信息。所以在实现二叉树的三种非递归遍历的时候,我们需要开辟一个辅助栈来保存一些信息。 2、二叉树结点结构 /* struct TreeNode { int val; stru...
C++
二叉树
2022-03-10
0
674
二叉树的遍历(递归)
来自专栏
1、思路 由于二叉树的结构本身就是递归的,所以其很多操作都可以递归的实现。比如三种遍历操作。比如对于先序遍历,我们只需要先访问其根节点,再递归的访问左右子树即可。 2、二叉树结点结构 /* struct TreeNode { int val; struct TreeNode *left; st...
C++
二叉树
2022-03-10
0
486
题解 | #二叉树的深度#
思路(递归) 经典的递归题目,TreeDepth()这个函数返回一个树的深度。而树深等于左右子树中较深的那颗树的深度。因此给定树的深度=max(左子树深度,右子树深度)+1。而左子树深度=TreeDepth(左子树)。右子树深度=TreeDepth(右子树)。树空的时候要返回0,不写这个条件的话递归...
C++
二叉树
#递归
2022-02-27
0
419
题解 | #从上往下打印二叉树#(层次遍历)
思路 典型的层次遍历,套模板即可。 代码实现 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), righ...
C++
二叉树
#层次遍历
2022-02-25
1
460
题解 | #对称的二叉树#
思路 可以参考官方题解,我这里只说一下自己的错误。我刚开始想的对称树利用中序遍历出来的序列也是对称的,其实是不对的。比如:1 2 3 3 # 2 #。这个序列中序就是3 2 1 2 3 。但其不是对称二叉树。 错误代码 /* struct TreeNode { int val; st...
C++
二叉树
2022-02-25
0
357
题解 | #二叉搜索树与双向链表#
方法一 已知将二叉搜索树进行中序遍历可以得到由小到大的顺序排列,因此本题最直接的想法就是进行中序遍历。将中序遍历的结果用数组存储下来,得到的数组是有从小到大顺序的。最后将数组中的结点依次连接即可。示意图如下:具体代码如下: /* struct TreeNode { int val; ...
二叉树
2021-07-14
53
5599