![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树
二叉树的操作
小小皮卡丘啃算法
这个作者很懒,什么都没留下…
展开
-
114.二叉树展开为单链表
最简单的思路就是遍历每一个结点,将右节点挂到左节点最右端的下端,然后再将左节点挂到最上端结点的右端,左节点变为null;这是从上到下的操作。从下往上走,对于每一个结点,将其左右结点压入栈中保存,再弹出依次挂到右端上;这需要保存一个pre指针来辅助。额外空间)展开这棵树吗?你可以使用原地算法(原创 2024-06-13 14:57:53 · 275 阅读 · 0 评论 -
98.验证二叉搜索树
就是不能判断该节点和自己的左右子结点的大小,要判断左右子树的全部结点,因此需要引入两个指针min 和 max 来维护判断。根节点的值是 5 ,但是右子节点的值是 4。,判断其是否是一个有效的二叉搜索树。给你一个二叉树的根节点。原创 2024-06-12 12:25:43 · 208 阅读 · 0 评论 -
二叉树构建
由于二叉树的左右子树和整树相似(即子问题和原始问题相似),因此多考虑使用递归的方法解决问题。将数组转换为二叉树就是将数组进行二分法,将中间的点作为父节点,构建左右子树。[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。·leetcode 108.将有序列表转换为二叉树。排列,请你将其转换为一棵。原创 2024-06-12 11:37:03 · 333 阅读 · 0 评论 -
二叉树的直径
对于一个结点,找出左边的最大深度 再找出右边的最大深度 再相加加2就是该节点的最大直径。3 ,取路径 [4,2,1,3] 或 [5,2,1,3] 的长度。·543——lettcode——二叉树的直径。这条路径可能经过也可能不经过根节点。利用ans ,更新获取整个树的最大直径。是指树中任意两个节点之间最长路径的。给你一棵二叉树的根节点,返回该树的。原创 2024-06-12 10:50:23 · 161 阅读 · 0 评论 -
判断对称树
刚刚学了广义遍历,所以想是否可以创建一个队列,将每一层的结点压入队列中,再判断是否是对称。这里有个小技巧是,将需要判断是否是相等的两个结点放到一处。根据前后弹出的两个结点判断是否相等,从而判断是否是对称树。·leetcode - 101 - 对称二叉树。给你一个二叉树的根节点。, 检查它是否轴对称。原创 2024-06-11 15:21:56 · 151 阅读 · 0 评论 -
二叉树遍历
二叉树的遍历有先序遍历(根 --> 左 --> 右) 中序遍历(左 -- > 根 -- > 右)遍历的方法也很简单,只需要将迭代语句和打印语句交换位置即可。`leetcode - 94- 二叉树的中序遍历。后序遍历(左 -- > 右 ---> 根)给定一个二叉树的根节点。原创 2024-06-11 13:59:30 · 182 阅读 · 0 评论 -
二叉树最大深度
--------102.二叉树的层次遍历(广度遍历的变形)是指从根节点到最远叶子节点的最长路径上的节点数。·leetcode- 104-二叉树的最大深度。(即逐层地,从左到右访问所有节点)。迭代法最简单(遍历左数和右数,取最大)基于广度优先算法,需要用到队列。基于深度优先算法,需要用到栈。原创 2024-06-11 13:53:01 · 176 阅读 · 0 评论 -
二叉树左右树交换
leetcode 226题 翻转二叉树。,翻转这棵二叉树,并返回其根节点。给你一棵二叉树的根节点。原创 2024-06-11 13:49:02 · 230 阅读 · 1 评论