给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 示例 2: 提示: 解答: 官方解答: 1.递归 2.迭代
Month: March 2023
LeetCode 104 二叉树的最大深度
给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7] 返回它的最大深度 3 。 解题: 官方解答: 1.深度优先搜索 2.广度优先搜索
LeetCode 103 二叉树的锯齿形层序遍历
给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 示例 1: 示例 2: 示例 3: 提示: 解题: 官方解答: 1.广度优先遍历
LeetCode 102 二叉树的层序遍历
LeetCode 101 对称二叉树
LeetCode 100 相同的树
给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 示例 2: 示例 3: 提示: 解题: 官方解答: 1.深度优先搜索 2.广度优先搜索
LeetCode 99 恢复二叉搜索树
给你二叉搜索树的根节点 root ,该树中的 恰好 两个节点的值被错误地交换。请在不改变其结构的情况下,恢复这棵树 。 示例 1: 示例 2: 提示: 进阶:使用 O(n) 空间复杂度的解法很容易实现。你能想出一个只使用 O(1) 空间的解决方案吗? 解题: 官方解答: 1.显式中序遍历 2.隐式中序遍历 3.Morris 中序遍历
LeetCode 98 验证二叉树
LeetCode 97 交错字符串
给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串: 注意:a + b 意味着字符串 a 和 b 连接。 示例 1: 示例 2: 示例 3: 提示: 进阶:您能否仅使用 O(s2.length) 额外的内存空间来解决它? 解题: 官方解答: 1.动态规划 使用滚动数组优化空间复杂度
LeetCode 96 不同的二叉搜索树
给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 示例 2: 提示: 解题: 结果超时了。。。 官方解答: 1.动态规划 2.数学