代码随想录算法训练营第十六天|654.最大二叉树|617.合并二叉树|700. 二叉搜索树中的搜索|98.验证二叉搜索树

654.最大二叉树

文档讲解:代码随想录

视频讲解:又是构造二叉树,又有很多坑!| LeetCode:654.最大二叉树_哔哩哔哩_bilibili

1. 不知道咋做。

2. 找到数组最大值,将数组划分为左右数组,然后递归构造二叉树,当数组长度为1时,构造二叉树节点然后返回。

3. 在递归生成左右子树时需要判断划分的数组长度是否不为1,生成的节点递归创建左右子树有意义。

4. 用了一天的零散时间。

617.合并二叉树

文档讲解:代码随想录 (programmercarl.com)

视频讲解:一起操作两个二叉树?有点懵!| LeetCode:617.合并二叉树_哔哩哔哩_bilibili

1. 不知道咋做。

2. 同时操作两棵树t1,t2, 可以直接用t1或t2根节点返回,递归的终止条件是如果t1为null,则返回t2, 如果t2为null则返回t1, 比如同时遍历t1和t2时,两颗树都有值直接进行相加操作,其中一个为null则返回另一个节点,依次递归处理左子树和右子树。

3. 同时操作两棵树t1,t2, 可以直接用t1或t2根节点返回,递归的终止条件是如果t1为null,则返回t2, 如果t2为null则返回t1, 比如同时遍历t1和t2时,两颗树都有值直接进行相加操作,其中一个为null则返回另一个节点,依次递归处理左子树和右子树。

4. 用了两天的零散时间。

700. 二叉搜索树中的搜索

文档讲解:代码随想录

视频讲解:不愧是搜索树,这次搜索有方向了!| LeetCode:700.二叉搜索树中的搜索_哔哩哔哩_bilibili

1. 不知道咋做。

2. 二叉搜索树根节点的值大于左子树的值,小于右子树的值,根据数值的大小自动选择递归调用选择返回左子树 / 右子树节点。迭代法通过循环和节点值选择方向。

3. 二叉搜索树根节点的值大于左子树的值,小于右子树的值,根据数值的大小自动选择递归调用选择返回左子树 / 右子树节点。迭代法通过循环和节点值选择方向。

4. 用了两天的零散时间。

98.验证二叉搜索树

文档讲解:代码随想录

视频讲解:你对二叉搜索树了解的还不够! | LeetCode:98.验证二叉搜索树_哔哩哔哩_bilibili

状态:基于双指针的还没有做。

1. 不知道咋做。

2. 通过生成一个中序遍历的数组,检查数组是否单调递增即可判断是否是二叉搜索树;通过设置一个变量记录前一个变量节点的数值,然后在每次遍历时通过比较前序遍历的中节点的值和记录的变量的大小关系,如果当前节点的值大于变量记录的值,则可能是二叉搜索树,否则不是二叉搜索书。

3. 用生成数组判断递增中用到了双指针,后一个指针当>= length - 1时就需要跳出循环,while循环最下面判断后指针位于数组最后一个元素位置则跳出循环;JavaScript中定义最小值-Math.min()

4.用了两天的零散时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值