二叉树专题
文章平均质量分 59
大帅比的小跟班
双非水硕在读憨憨一枚。。。
展开
-
二叉树——450. 删除二叉搜索树中的节点(递归+迭代)
450. 删除二叉搜索树中的节点给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤:首先找到需要删除的节点;如果找到了,删除它。提示:节点数的范围[0, 104]. -105<= Node.val <= 105 节点值唯一 root是合法的二叉搜索树 -105<= key <= 1...原创 2022-01-30 00:02:04 · 676 阅读 · 0 评论 -
二叉树——98. 验证二叉搜索树(递归+迭代)
98. 验证二叉搜索树给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。提示:树中节点数目范围在[1, 104]内 -231<= Node.val <= 231- 1解题思路:二叉搜索树的特点在于 二叉搜索树通过中序遍历所遍历的节点的 val 值是单调递增的,所以我们可以将所给树经过中序...原创 2022-01-28 00:32:51 · 260 阅读 · 0 评论 -
二叉树——572. 另一棵树的子树(递归+迭代)
572. 另一棵树的子树相同题型:100.相同的树 101.对称二叉树给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。提示:root 树上的节点数量范围是 [1, 2000] subRoot 树上的节点数量范围是 [1, 1000].原创 2022-01-25 00:39:05 · 682 阅读 · 0 评论 -
二叉树——257. 二叉树的所有路径(递归+迭代)
257. 二叉树的所有路径给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。叶子节点 是指没有子节点的节点。解题之前,想先吐槽点别的,为什么这么简单一道题,我会写这么久?为什么很多题之前都写过,但是见到之后就不会写了?为什么不能沉下心去认真的干一件事情?答案只有一个,我是个废物,我压根不适合写代码,我为什么要学这个,或者说我到底会什么?24岁一事无成的废物。解题思路:递归+迭代递归就是之前的回溯,没什么好写的。只不过要知道是采用前序遍历..原创 2022-01-21 01:27:24 · 780 阅读 · 0 评论 -
二叉树——222.完全二叉树的节点个数(递归+迭代)
222. 完全二叉树的节点个数给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。提示:树中节点的数目范围是[0, 5 * 104] 0 <= Node.val <= 5 * 104 题目数据保证输入的树是完全二叉树解题思路:这个题解题思路可以分为两种...原创 2022-01-20 00:02:40 · 2304 阅读 · 0 评论 -
二叉树——翻转二叉树、对称二叉树(递归+迭代)
226. 翻转二叉树翻转一棵二叉树。解题方法:递归 + 迭代递归我们可以通过遍历整棵二叉树然后调换每个节点的左右子树即可完成二叉树的翻转。在递归遍历中,只有前序和后序是可以实现翻转的,因为中序的调换顺序使用的是指针,会出现一棵子树调换两次的情况。前序遍历翻转递归代码如下:class Solution { public TreeNode invertTree(TreeNode root) { if(root == null){ re原创 2022-01-15 13:02:54 · 480 阅读 · 0 评论 -
二叉树——层序遍历(迭代+同考点题)
102. 二叉树的层序遍历给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。树中节点数目在范围[0, 2000]内 -1000 <= Node.val <= 1000解题思路:利用队列先进先出的特性,将二叉树的头节点入队列,然后一旦出队,则将其左右节点入队。直到队列为空。/** * Definition for a binary tree node. * public class TreeNode { * ...原创 2022-01-14 19:27:51 · 166 阅读 · 0 评论 -
二叉树——前序、中序、后序遍历(递归+迭代)
给你二叉树的根节点 root ,返回它节点值的 前序、中序、后序 遍历。对应的中序、后序结果分别为 [1,3,2] 和 [3,2,1]解题方法:①递归法、②各自为营的迭代法(每种都有自己的特点,不具有模板性)、③模板迭代①递归法前序:class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> res = new Lin..原创 2022-01-13 21:29:48 · 266 阅读 · 0 评论