![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树
(刘*牛)
这个作者很懒,什么都没留下…
展开
-
96. 不同的二叉搜索树
给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。这个题目是非常典型的动态规划题目,先不说官方题解中后面推导出来的什么数学上的卡特兰数,就前面的动态规划推导过程和思路讲解,我感觉就是非常好的一个解决思路,值得学习。代码实现比较简单,重点是前面的推导思路。推导思路:解题代码:int numTrees(int n){ if (n == 0 || n == 1) { return 1;原创 2021-07-10 17:44:10 · 58 阅读 · 0 评论 -
404. 左叶子之和
计算给定二叉树的所有左叶子之和。示例:3/ 9 20/ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sum-of-left-leaves著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法:递归解法:/** * Definition for a binary tree node. * struct TreeNode {原创 2021-07-10 10:34:41 · 38 阅读 · 0 评论 -
二叉树的遍历算法
题目:给定一个二叉树的根节点 root ,返回它的 中序 遍历中序遍历定义:给一个二叉树的节点,先遍历二叉树的左子树,然后遍历根节点,然后访问二叉树的右子树解法:1.递归遍历,隐形的维护了一个栈递归遍历算法比较简单,因为二叉树本身的建立也是通过递归进行建立的。所以二叉树的子树也是二叉树,根据这个思想,遍历算法如下:1)访问二叉树的左子树2)访问根节点3)访问二叉树的右子树伪代码如下:mid_printf_binary_tree(root) {mid_printf_binary_tree原创 2021-05-13 22:23:26 · 198 阅读 · 0 评论 -
110. 平衡二叉树
题目:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。解法思路:1)通过遍历每一个节点,然后返回节点对应的左右子树的高度来判断该节点是否是左右平衡的,采取从根节点开始的思路可以实现,但是该方法对于子树的高度计算存在重复计算(参考前序遍历)代码实现如下:/** * Definition for a binary tree node. * struct TreeNode { * int va原创 2020-07-28 22:23:07 · 118 阅读 · 0 评论 -
108. 将有序数组转换为二叉搜索树
题目:将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:解题思路:链接:https://leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree/solution/jiang-you-xu-shu-zu-zhuan-huan-wei-er-cha-sou-s-33/代码试下:/** * Definitio原创 2020-07-28 21:41:44 · 58 阅读 · 0 评论 -
二叉树的层次遍历 II
给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7],返回其自底向上的层次遍历为:[[15,7],[9,20],[3]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二叉原创 2020-07-21 20:49:35 · 133 阅读 · 0 评论 -
先序序列和后序序列并不能唯一确定二叉树
数据结构的基础知识中重要的一点就是能否根据两种不同遍历序列的组合(有三种:先序+中序,先序+后序,中序+后序),唯一的确定一棵二叉树。然后就是根据二叉树的不同遍历序列(先序、中序、后序),重构二叉树。显然,这三种组合并不是都能唯一确定二叉树的,其中先序+后序就不能唯一确定一棵二叉树,其他两种组合可以唯一的确定一颗二叉树。由先序序列和后序序列不能唯一确定一棵二叉树,因无法确定左右子树两部分。反例:任何结点只有左子树的二叉树和任何结点只有右子树的二叉树,其前序序列相同,后序序列相同,但却是两棵不同的二叉树。转载 2020-07-21 16:04:29 · 10475 阅读 · 0 评论 -
N叉树的最大深度
给定一个 N 叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。例如,给定一个 3叉树 :我们应返回其最大深度,3。说明:树的深度不会超过 1000。树的节点总不会超过 5000。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-depth-of-n-ary-tree著作权归领扣网络...原创 2019-12-11 22:47:27 · 138 阅读 · 0 评论 -
二叉树最小深度
给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最小深度 2.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-dep...原创 2019-12-11 21:17:49 · 60 阅读 · 0 评论 -
二叉树最大深度
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最大深度 3 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-dep...原创 2019-12-11 20:34:23 · 77 阅读 · 0 评论 -
对称二叉树
题目描述:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ 2 2/ \ / 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1/ 2 2\ 3 3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/...原创 2019-12-10 22:08:49 · 50 阅读 · 0 评论 -
比较两个二叉树是否相同
题目描述:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1/ \ / 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 1/ 2 ...原创 2019-12-10 20:32:17 · 261 阅读 · 0 评论