【每日算法】LeetCode 106 —— 从中序与后序遍历序列构造二叉树(一百九十八)|算法|LeetCode题目内容根据一棵树的中序遍历与后序遍历构造二叉树。
注意:你可以假设树中没有重复的元素。
示例中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树:
题解本题与通过前序遍历和中序遍历构造二叉树的思路一致,只不过我们这里 ...
Read more
【每日算法】LeetCode 105 —— 从前序与中序遍历序列构造二叉树(一百九十七)|算法|LeetCode题目内容给定一棵树的前序遍历 preorder 与中序遍历 inorder。请构造二叉树并返回其根节点。
示例示例 1:
Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,null,null,15,7]
...
Read more
【每日算法】LeetCode 104 —— 二叉树的最大深度(一百九十六)|算法|LeetCode题目内容给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例给定二叉树 [3,9,20,null,null,15,7],
返回它的最大深度 3 。
题解本题求二叉树的深度,就是求节点到根节点路径上节点数最大的值。可 ...
Read more
【每日算法】LeetCode 103 —— 二叉树的锯齿形层次遍历(一百九十五)|算法|LeetCode题目内容给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。
示例给定二叉树 [3,9,20,null,null,15,7],
返回锯齿形层序遍历如下:
[ [3], [20,9], [15,7]]
题解本题与之前的层序遍历的 ...
Read more
【每日算法】LeetCode 102 —— 二叉树的层序遍历(一百九十四)|算法|LeetCode题目内容给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
示例二叉树:[3,9,20,null,null,15,7],
返回其层序遍历结果:
[ [3], [9,20], [15,7]]
题解层序遍历需要借助一个队列,然后进行宽度优先搜索即可。
...
Read more
【每日算法】LeetCode 101 —— 对称二叉树(一百九十三)|算法|LeetCode题目内容给定一个二叉树,检查它是否是镜像对称的。请用递归和迭代两种方法解决这个问题。
示例示例一
二叉树 [1,2,2,3,4,4,3] 是对称的。
示例二
[1,2,2,null,3,null,3] 则不是镜像对称的。
题解本题的思路很简单,就是对树进行遍历求解。只需要注意:在遍历的过程中, ...
Read more
【每日算法】LeetCode 100 —— 相同的树(一百九十二)|算法|LeetCode题目内容给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
示例示例 1:
输入:p = [1,2,3], q = [1,2,3]输出:true
示例 2:
输入:p = [1,2], q = [1,nu ...
Read more
【每日算法】LeetCode 99 —— 恢复二叉搜索树(一百九十一)|算法|LeetCode题目内容给你二叉搜索树的根节点 root ,该树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。
进阶:使用 O(n) 空间复杂度的解法很容易实现。你能想出一个只使用常数空间的解决方案吗?
示例示例 1:
输入:root = [1,3,null,null,2]输出:[3,1,null ...
Read more
【每日算法】LeetCode 98 —— 验证二叉搜索树(一百九十)|算法|LeetCode题目内容给定一个二叉树,判断其是否是一个有效的二叉搜索树。
假设一个二叉搜索树具有如下特征:
1、节点的左子树只包含小于当前节点的数。2、节点的右子树只包含大于当前节点的数。3、所有左子树和右子树自身必须也是二叉搜索树。
示例示例 1:
输入: 2 / \ 1 3输出: true
示 ...
Read more
【每日算法】LeetCode 97 —— 交错字符串(一百八十九)|算法|LeetCode题目内容给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。
两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串:
s = s1 + s2 + … + snt = t1 + t2 + … + tm|n - m| & ...
Read more