二叉树
文章平均质量分 65
二叉树相关算法
Stephen6Yang
一起学习,共同进步,大数据领域知识分享
展开
-
二叉搜索树的最小绝对差
遇到在二叉搜索树上求什么最值,求差值之类的,都要思考一下二叉搜索树可是有序的,要利用好这一特点。同时要学会在递归遍历的过程中如何记录前后两个指针,这也是一个小技巧,学会了还是很受用的。原创 2023-11-08 13:47:28 · 42 阅读 · 0 评论 -
二叉树-路径总和
判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum。不要去累加然后判断是否等于目标和,那么代码比较麻烦,可以用递减,让计数器count初始为目标和,然后每次减去遍历路径节点上的数值。参数:需要二叉树的根节点,还需要一个计数器,这个计数器用来计算二叉树的一条边之和是否正好是目标和,计数器为int型。递归函数是有返回值的,如果递归函数返回true,说明找到了合适的路径,应该立刻返回。因为终止条件是判断叶子节点,所以递归的过程中就不要让空节点进入递归了。原创 2023-10-31 13:38:29 · 77 阅读 · 0 评论 -
左叶子之和
给定二叉树的根节点 root ,返回所有左叶子之和。首先要注意是判断左叶子,不是二叉树左侧节点,所以不要上来想着层序遍历。因为题目中其实没有说清楚左叶子究竟是什么节点,那么我来给出左叶子的明确定义:节点A的左孩子不为空,且左孩子的左右孩子都为空(说明是叶子节点),那么A节点的左孩子为左叶子节点大家思考一下如下图中二叉树,左叶子之和究竟是多少?没有左叶子!但看这个图的左叶子之和是多少?那么判断当前节点是不是左叶子是无法判断的,必须要通过节点的父节点来判断其左孩子是不是左叶子。原创 2023-10-30 15:38:52 · 50 阅读 · 0 评论 -
二叉树的所有路径
给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。叶子节点 是指没有子节点的节点。这道题目要求从根节点到叶子的路径,所以需要前序遍历,这样才方便让父节点指向孩子节点,找到对应的路径。在这道题目中将第一次涉及到回溯,因为我们要把路径记录下来,需要回溯来回退一个路径再进入另一个路径。原创 2023-10-24 10:46:30 · 52 阅读 · 0 评论 -
平衡二叉树
分别求出其左右子树的高度,然后如果差值小于等于1,则返回当前二叉树的高度,否则返回-1,表示已经不是二叉平衡树了。当然是其左子树高度和其右子树高度的差值。如果当前传入节点为根节点的二叉树已经不是二叉平衡树了,还返回高度的话就没有意义了。递归的过程中依然是遇到空节点了为终止,返回0,表示当前节点为根节点的树高度为0。所以如果已经不是二叉平衡树了,可以返回-1 来标记已经不符合平衡树的规则了。一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。返回值:以当前传入节点为根节点的树的高度。原创 2023-10-23 14:22:08 · 49 阅读 · 0 评论 -
求二叉树最大深度和最小深度
3.确定单层递归的逻辑:先求它的左子树的深度,再求右子树的深度,最后取左右深度最大的数值 再+1 (加1是因为算上当前中间节点)就是目前节点为根节点的树的深度。求解最小深度时容易陷入如下的一个误区,这就重新审题了,题目中说的是:最小深度是从根节点到最近叶子节点的最短路径上的节点数量。1.确定递归函数的参数和返回值:参数就是传入树的根节点,返回就返回这棵树的深度,所以返回值为int类型。所以,如果左子树为空,右子树不为空,说明最小深度是 1 + 右子树的深度。如果这么求的话,没有左孩子的分支会算为最短深度。原创 2023-10-19 14:10:13 · 92 阅读 · 0 评论 -
对称二叉树
给你一个二叉树的根节点 root , 检查它是否轴对称。原创 2023-10-17 16:47:45 · 47 阅读 · 0 评论 -
二叉树总结
满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。这棵二叉树为满二叉树,也可以说深度为k,有2^k-1个节点的二叉树。原创 2023-10-17 10:26:13 · 47 阅读 · 0 评论 -
二叉树非递归遍历
递归的实现就是:每一次递归调用都会把函数的局部变量、参数值和返回地址等压入调用栈中,然后递归返回的时候,从栈顶弹出上一次递归的各项参数,所以这就是递归为什么可以返回上一层位置的原因。此时大家应该知道我们用栈也可以是实现二叉树的前后中序遍历了。原创 2023-10-11 16:19:13 · 49 阅读 · 0 评论
分享