![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树
泽阳Alex
热爱摄影,热爱生活
展开
-
【208】实现Trie(前缀树)
题目(难度:中等): 实现一个 Trie (前缀树),包含insert,search, 和startsWith这三个操作。 示例: Trie trie = new Trie(); trie.insert("apple"); trie.search("apple"); // 返回 true trie.search("app"); // 返回 false trie.star...原创 2019-11-25 08:23:14 · 125 阅读 · 0 评论 -
【653】两数之和IV——输入BST
题目(难度:简单): 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。 案例 1: 输入: 5 / \ 3 6 / \ \ 2 4 7 Target = 9 输出: True 代码思想: 利用二叉搜索树的特点,即中序遍历节点值升序的特点,将中序遍历的结果存储在list中(这里因为不知道...原创 2019-11-25 08:21:50 · 118 阅读 · 0 评论 -
【104】二叉树的最大深度
题目(难度:简单): 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明:叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度3 。 代码思想: 利用递归,取当前节点左右子树的最大深度+1,...原创 2019-11-24 11:05:05 · 72 阅读 · 0 评论 -
【114】将二叉树展开为链表
题目(难度:中等): 给定一个二叉树,原地将它展开为链表。 例如,给定二叉树 1 / \ 2 5 / \ \ 3 4 6 将其展开为: 1 \ 2 \ 3 \ 4 \ 5 \ 6 代码思想: 核心问题是不允许创建新的链表存储树节点,而是在二叉...原创 2019-11-24 10:58:03 · 79 阅读 · 0 评论 -
【958】完全二叉树
题目(难度:中等): 若设二叉树的深度为 h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。(注:第 h 层可能包含 1~2h个节点。) 示例 1: 输入:[1,2,3,4,5,6] 输出:true 代码思想: 任何一个节点有右孩子没有左孩子,则返回false 如果左右孩子不全,即有左孩子无右孩子或者...原创 2019-11-24 10:48:16 · 121 阅读 · 0 评论 -
【110】平衡二叉树
题目(难度:中等): 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回 true 。 代码思想: 利用递归,递归结束条件:叶子节点...原创 2019-11-24 10:42:24 · 90 阅读 · 0 评论 -
【783】二叉搜索树节点最小距离
题目(难度:简单): 给定一个二叉搜索树的根结点root, 返回树中任意两节点的差的最小值。 示例: 输入: root = [4,2,6,1,3,null,null] 输出: 1 解释: 注意,root是树结点对象(TreeNode object),而不是数组。 给定的树 [4,2,6,1,3,null,null] 可表示为下图: 4 / \ ...原创 2019-11-24 10:35:34 · 211 阅读 · 0 评论 -
【701】二叉搜索树的插入操作
题目(难度:中等): 给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。 注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。 给定二叉搜索树: 4 / \ 2 7 / \ 1 3 和 插...原创 2019-11-24 10:29:08 · 260 阅读 · 0 评论 -
【538】把二叉搜索树转换为累加树
题目(难度:简单): 给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。 例如: 输入: 二叉搜索树: 5 / \ 2 13 输出: 转换为累加树: 18 ...原创 2019-11-24 10:09:27 · 86 阅读 · 0 评论 -
【700】二叉搜索树中的搜索
题目(难度:简单): 给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。 给定二叉搜索树: 4 / \ 2 7 / \ 1 3 和值: 2 你应该返回如下子树: 2 / \ 1...原创 2019-11-24 10:05:33 · 111 阅读 · 0 评论 -
【98】验证二叉搜索树
题目98(难度:中等): 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。示例1: 输入: 2 / \ 1 3 输出: true示例2: 输入: 5 / \ 1 4 / \ ...原创 2019-11-24 10:00:32 · 73 阅读 · 0 评论 -
【102】【107】二叉树的层次遍历、二叉树的层次遍历II(已优化)
题目【102】(难度:中等): 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 给定二叉树:[3,9,20,null,null,15,7], 代码思想: 利用队列FIFO的思想,将二叉树的节点放入队列中。 初始化队列只包含一个根节点root和层次编号level=0; 当队列非空时: 在输出结果levels中插入一个空列表,开始当前层的算...原创 2019-10-21 20:14:32 · 140 阅读 · 0 评论 -
【572】另一个树的子树
题目(难度:简单): 给定两个非空二叉树 s 和 t,检验s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。 代码思想: 分两步,第一步,先在父树中找到子树的根节点,再分别比较父树和子树的左孩子和右孩子,递归的终止条件是: 如果父树节点和子树节点均为空,则是子树 如果两者其一为空,另一不为空,则...原创 2019-11-09 17:00:34 · 103 阅读 · 0 评论