树
文章平均质量分 56
J.Kuchiki
这个作者很懒,什么都没留下…
展开
-
最小高度树
最小高度树题目描述: 给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。原题链接示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5 题解:(数组切割+递归)思路分析: 那如何保证高度最小呢?当树中的任意结点的左右子树高度差都不超过 1 时,整棵树的深原创 2022-05-05 20:15:23 · 137 阅读 · 0 评论 -
二叉树枝剪
二叉树枝剪题目描述: 给定一个二叉树 根节点 root ,树的每个节点的值要么是 0,要么是 1。请剪除该二叉树中所有节点的值为 0 的子树。节点 node 的子树为 node 本身,以及所有 node 的后代。原题链接示例 1:输入: [1,null,0,0,1]输出: [1,null,0,null,1] 解释: 只有红色节点满足条件“所有不包含 1 的子树”。右图为返回的答案。示例 2:输入: [1,0,1,0,0,0,1]输出: [1,null,1,null,1]示原创 2022-05-04 21:23:06 · 100 阅读 · 0 评论 -
平衡二叉树
平衡二叉树给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。示例 1:输入:root = [3,9,20,null,null,15,7]输出:true示例 2:输入:root = [1,2,2,3,3,null,null,4,4]输出:false示例 3:输入:root = []输出:true解题:方法一:自顶向下的递归class Solution {public:原创 2022-05-03 21:35:31 · 73 阅读 · 0 评论 -
重建二叉树
重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。示例 1:Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,null,null,15,7]示例 2:Input: preorder = [-1], inorder = [-1]Output: [-1]解题:(递归)/** * Definition for原创 2022-05-03 21:13:22 · 59 阅读 · 0 评论 -
【遍历二叉树】
遍历二叉树二叉树的先序遍历方法一:递归方法二:迭代二叉树的中序遍历方法一:递归方法二:迭代二叉树的后序遍历方法一:递归方法二:迭代二叉树的先序遍历方法一:递归思路与算法: 首先我们需要了解什么是二叉树的前序遍历:按照访问根节点——左子树——右子树的方式遍历这棵树,而在访问左子树或者右子树的时候,我们按照同样的方式遍历,直到遍历完整棵树。因此整个遍历过程天然具有递归的性质,我们可以直接用递归函数来模拟这一过程。代码实现(c++):class Solution {public: void原创 2022-04-13 21:33:19 · 218 阅读 · 0 评论