Skip to content

Latest commit

 

History

History
104 lines (68 loc) · 3.75 KB

03.04.03-Exercises.md

File metadata and controls

104 lines (68 loc) · 3.75 KB

03.04.03 练习题目(第 12 天)

1.1 题目大意

描述:给定一个二叉树的根节点 root

要求:判断其是否是一个有效的二叉搜索树。

说明

  • 二叉搜索树特征
    • 节点的左子树只包含小于当前节点的数。
    • 节点的右子树只包含大于当前节点的数。
    • 所有左子树和右子树自身必须也是二叉搜索树。
  • 树中节点数目范围在$[1, 10^4]$ 内。
  • $-2^{31} \le Node.val \le 2^{31} - 1$

示例

img

输入root = [2,1,3]
输出true

img

输入root = [5,1,4,null,null,3,6]
输出false
解释根节点的值是 5但是右子节点的值是 4

2.1 题目大意

描述:给定一个升序的有序数组 nums

要求:将其转换为一棵高度平衡的二叉搜索树。

说明

  • $1 \le nums.length \le 10^4$
  • $-10^4 \le nums[i] \le 10^4$
  • nums 按严格递增顺序排列。

示例

输入nums = [-10,-3,0,5,9]
输出:[0,-3,9,-10,null,5]
解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案

img

输入nums = [1,3]
输出:[3,1]
解释:[1,null,3]  [3,1] 都是高度平衡二叉搜索树

3.1 题目大意

描述:给定一个二叉搜索树的根节点 root,以及两个指定节点 pq

要求:找到该树中两个指定节点的最近公共祖先。

说明

  • 祖先:若节点 p 在节点 node 的左子树或右子树中,或者 p == node,则称 nodep 的祖先。
  • 最近公共祖先:对于树的两个节点 pq,最近公共祖先表示为一个节点 lca_node,满足 lca_nodepq 的祖先且 lca_node 的深度尽可能大(一个节点也可以是自己的祖先)。
  • 所有节点的值都是唯一的。
  • pq 为不同节点且均存在于给定的二叉搜索树中。

示例

img

输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8
输出: 6 
解释: 节点 2 和节点 8 的最近公共祖先是 6输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4
输出: 2
解释: 节点 2 和节点 4 的最近公共祖先是 2, 因为根据定义最近公共祖先节点可以为节点本身

习题解析

  1. 0098. 验证二叉搜索树」习题解析:网页链接Github 链接
  2. 0108. 将有序数组转换为二叉搜索树」习题解析:网页链接Github 链接
  3. 0235. 二叉搜索树的最近公共祖先」习题解析:网页链接Github 链接