二叉搜索树 的题目
2023-2-25
| 2023-8-2
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
 

 
 

区间元素查找

题目:给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。
示例:
notion image
 
 
 

验证二叉搜索树

题目:给你一个二叉树的根节点 root,判断其是否是一个有效的二叉搜索树
示例:
notion image
 
 

子树问题

题目:输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)。B是A的子结构, 即A中有出现和B相同的结构和节点值。
notion image
 
 
 

最近的公共祖先

题目:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先
示例:
notion image
notion image
根据若rootp,q的 最近公共祖先 ,则只可能为以下情况之一:
  • pqroot的子树中,且分列root的异侧(即分别在左、右子树中)
  • p=root ,且qroot的左或右子树中
  • q=root ,且proot的左或右子树中
 
 

镜像翻转

题目:给一棵二叉树的根节点 root,翻转这棵二叉树,并返回其根节点。
示例:
notion image
 
 
 

对称二叉树

题目:给你一个二叉树的根节点 root, 检查它是否轴对称。
示例:
notion image
 
 
 

根据前序遍历和中序遍历重建二叉树

题目:给定两个整数数组 preorder和 inorder,其中 preorder是二叉树的先序遍历, inorder是同一棵树的中序遍历,请构造二叉树并返回其根节点
示例:
notion image
  • 二叉树前序遍历的顺序为:根左右
  • 二叉树中序遍历的顺序为:左根右
 
递归建立整颗二叉树:先创建根节点,然后递归创建左右子树,并让指针指向两颗子树
notion image
  1. 先利用前序遍历找根节点:前序遍历的第一个数就是根节点的值
  1. 在中序遍历中找到根节点的位置pos,则pos左边是左子树的中序遍历,右边是右子树的中序遍历
  1. 假设左子树的中序遍历的长度是k,则在前序遍历中,根节点后面的k个数,是左子树的前序遍历,剩下的数是右子树的前序遍历
  1. 有了左右子树的前序遍历和中序遍历,可以先递归创建出根节点,然后再递归创建左右子树,再将这两颗子树接到根节点的左右位置
 
 

从中序与后序遍历序列构造二叉树

题目:给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗二叉树 
示例:
notion image
 
  • 二叉树中序遍历的顺序为:左根右;
  • 二叉树后序遍历的顺序为:左右根;
可以递归建立整棵二叉树:即先创建根节点,然后递归创建左右子树,并让指针指向两棵子树。
notion image
 
 
 
 
 
 
 
 
 

判断二叉树是否为平衡树

题目:给定一个二叉树,判断它是否是高度平衡的二叉树。一棵高度平衡二叉树定义为:二叉树每个节点的左右两个子树的高度差的绝对值不超过1 。
示例:
notion image
 
 

求中序遍历倒数第k个节点/二叉搜索树的第k大节点

题目:给定一棵二叉搜索树,请找出其中第k大的节点的值。
示例:
 
 
二叉搜索树中第K小的元素:
 
 

最小高度树

题目:给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树
示例:
中序遍历,总是选择中间位置左边的数字作为根节点
 
 
 

二叉搜索树的后序遍历序列

题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。
示例:
参考以下这颗二叉搜索树:
notion image
 
 

二叉搜索树中的中序后继

题目:
给定一棵二叉搜索树和其中的一个节点 p ,找到该节点在树中的中序后继。如果节点没有中序后继,请返回 null 。节点 p 的后继是值比 p.val 大的节点中键值最小的节点,即按中序遍历的顺序节点 p 的下一个节点。
示例:
notion image
  • 计算机基础
  • 数据结构与算法
  • 二叉搜索树 BST二叉平衡树 AVL
    目录