
树
LeetCode 刷题--树
只不停
不积跬步,无以至千里。
展开
-
LeetCode刷题 - - 树(六)二叉搜索树
二叉搜索树,左子结点小于根结点小于右子节点。 递归怎么写? 1.总结规律,你知道你是在写一个递归方法,那么就得定义出这个递归方法是干什么的。 2.调用自己 3.跳出条件,跳出时的判断条件是什么以及当前条件下该返回什么。 需要注意的是,如果你的跳出条件有问题的话,递归很容易产生stackoverflow。 669. 修剪二叉搜索树 给定一个二叉搜索树,同时给定最小边界L 和最大边界 R。通过修剪二叉...原创 2020-02-23 18:32:58 · 800 阅读 · 0 评论 -
LeetCode刷题 --树(五)前中后序遍历
输入: 1 / \ 2 3 / \ / 4 5 6 输出: 层次遍历:【1,2,3,4,5,6】 前序遍历:【1,2,4,5,3,6】 中序遍历:【4,2,5,1,6,3】 后序遍历:【4,5,2,6,3,1】 层次遍历使用BFS(队列)实现,利用的就是BFS一层一层遍历的特性; 前中后序遍历使用DFS(深度优先遍历)实现。 前序 public void preOr...原创 2020-02-22 19:05:15 · 269 阅读 · 0 评论 -
LeetCode刷题--树(四)层次遍历
637. 二叉树的层平均值 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组. 示例 1: 输入: 3 / 9 20 / 15 7 输出: [3, 14.5, 11] 解释: 第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11]. class Solution { public List<Double> av...原创 2020-02-22 17:26:50 · 303 阅读 · 0 评论 -
LeetCode刷题 -- 树(三)
给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。 示例 1: 给定的树 s: 3 / \ 4 5 / 1 2 给定的树 t: 4 / 1 2 返回 true,因为 t 与 s 的一个子树拥有相同的结构和节点值。 示例 2: 给定的树 s: 3 / \...原创 2020-02-22 17:16:31 · 261 阅读 · 0 评论 -
LeetCode 刷题 - 树(二)树的路径总和
112 路径总和 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ ...原创 2020-02-21 22:00:56 · 497 阅读 · 0 评论 -
LeetCode刷题 -- 树(一)
104. 树的最大深度 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回它的最大深度 3 。 class Solution { public int maxDepth(TreeNode r...原创 2020-02-21 21:12:18 · 257 阅读 · 0 评论