首页 > 其他分享 >代码随想录 day21 二叉搜索树的最小绝对差 二叉搜索树中的众数 二叉树的最近公共祖先

代码随想录 day21 二叉搜索树的最小绝对差 二叉搜索树中的众数 二叉树的最近公共祖先

时间:2024-01-16 21:56:01浏览次数:21  
标签:遍历 祖先 随想录 二叉 搜索 二叉树 众数

二叉搜索树的最小绝对差

二叉搜索树就是有序数组
那么转换一下就很简单了

也可以直接在遍历二叉搜索树的时候进行比较
需要一个指针记录前一个节点

二叉搜索树中的众数

既可以把这题的二叉搜索树当成一般树来做
这样就是层序遍历树然后用map记录频率
再取频率最高的值

这里用了中序遍历二叉搜索树 这样就是一个有序数组
那么就比较相邻的就可以了

这里注意pre的设置
最大众数集合的取得
直接放入maxCount
当我们取得更大的Count的时候
把原来的数组清空 把这个count放进去
这样有多个相同频次的众数的时候
就可以通过前一个if放入

二叉树的最近公共祖先

既然是找祖先 当然希望自底向上搜索
那么回溯就可以做到这点
后序遍历就是回溯
左右中

如果还要对返回值进行后续处理 就要用变量接住
如果不用就直接递归

左右子树都返回空 就说明没找到
左右子树都不为空那么就是根是祖先

如果一边为空呢

这个图说明了为什么一边为空另一边不为空的时候 返回不为空的一边子树

标签:遍历,祖先,随想录,二叉,搜索,二叉树,众数
From: https://www.cnblogs.com/mingtiao/p/17968638

相关文章

  • 搜索学习笔记+杂题 (进阶一 dfs/bfs的进阶)
    前言:没啥好说的了。所以只能来写博客了。搜索杂题:相关题单:戳我二、进阶dfs/bfs1、dfs进阶——折半搜索(meetinthemiddle)由于深搜的时间复杂度在每种状态有两个分支的情况下是\(O(2^n)\)。所以一般暴力深搜的数据范围就在\(20-25\)之间。而对于有一大类的题,它的搜索思......
  • android studio 搜索不到GitHub Copilot
    如何在AndroidStudio中搜索到GitHubCopilot1.概述在本文中,我将向你介绍如何在AndroidStudio中搜索到GitHubCopilot。GitHubCopilot是一个基于机器学习的代码助手,它可以根据上下文为你提供代码建议和完成。为了使用GitHubCopilot,你需要在AndroidStudio中安装并配置它。下......
  • 关于二叉树递归代码的粗鄙理解
    整体来看,二叉树的递归代码,可以分为终止条件,单层递归逻辑。单层递归逻辑就是所谓的根左右那三种,选哪一种也是有讲究的,如果不需要对根节点进行处理,那三种都可以。如果题目侧重与由子节点推到父节点,就采用后序遍历。如果题目侧重与由父节点推到子节点,就采用前序遍历。终止条件怎......
  • [代码随想录] 第六天
    383.赎金信https://leetcode.cn/problems/ransom-note/description/思路:本题与242.有效的字母异位词几乎相同。将字母-'a',变成0-26的数字存放于数组中,再遍历数组对比次数。classSolution{publicbooleancanConstruct(StringransomNote,Stringmagazine){in......
  • python 搜索旋转排序数组 多种解法
    二分查找:旋转排序数组中仍然可以应用二分查找算法。首先,我们找到数组中最小的元素的索引,也就是旋转点的位置。然后,我们根据目标值与旋转点的大小关系,在旋转点的左侧或右侧进行常规的二分查找。defsearch(nums,target):#寻找旋转点left,right=0,len(nums)-1......
  • 代码随想录 day20 最大二叉树 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
    最大二叉树前序遍历递归效率不高因为每次都要新开数组给左右子树可以在同一个数组上做这个事情合并二叉树一开始不知道怎么同时遍历两棵树其实只要同时传入两棵树的节点就可以了这里判断两棵树谁空就另外一个作为构造树全为空那就会构造空节点二叉搜索树中的搜索......
  • GitHub 高级搜索功能
    了解开源项目对于开发者的价值开源项目可以给开发者带来以下帮助:1、加速开发过程:开源项目提供了大量的可复用代码、库、框架和工具,可以帮助开发者快速构建应用程序和解决技术问题。这种可重用性可以显著加速项目的开发周期。2、降低开发成本:通过使用开源项目,你可以减少开发......
  • [代码随想录] 第五天
    242.有效的字母异位词https://leetcode.cn/problems/valid-anagram/description/思路:做一个基础版哈希表,哈希函数为key-'a',这样两个字符串的每个字母都会映射在26长的数组中,使用数组自增记录字母出现次数。classSolution{publicbooleanisAnagram(Strings,Stringt){......
  • 非递归形式遍历二叉树
    最简单的就是前序遍历,每次将栈顶元素插入数组中。但要注意由于栈的性质,先push右节点再push左节点。点击查看代码classSolution{public:vector<int>preorderTraversal(TreeNode*root){vector<int>v;stack<TreeNode*>stk;if(root!=NULL){stk.push(root);}while(!......
  • C++U5-第01课-深度优先搜索1
    在全排列问题中,使用深度优先搜索(DFS)的思想体现在以下几个方面:递归结构:在解决全排列问题的函数中,我们使用了递归调用的方式。通过递归地处理每个位置上的数字,然后继续递归地处理下一个位置上的数字,最终得到完整的排列结果。选择与回溯:在每次递归调用中,我们需要做出选择并标记......