代码随想录day 18 最大二叉树 | 合并二叉树 | 二叉搜索树中的搜索 | 验证二叉搜索树
最大二叉树
解题思路
找到最大值,随后将其分为左子树和右子树,重复循环即可。注意如果没有左子树,则返回null。
知识点
二叉树
心得
复习了一下用中序和后序构造二叉树的题目,做法是一样的
合并二叉树
解题思路
两颗树同时进行遍历,当有一方的节点是null的时候,保存那个不是null节点的值,否则就把两个节点的值加起来。本题推荐使用层序遍历,思路很直观。
知识点
二叉树
心得
先做出来了递归的版本,迭代的版本没有成功写出来。
二叉搜索树中的搜索
解题思路
利用二叉搜索树的性质,对每个节点进行比大小就行
知识点
二叉搜索树
心得
忘记了二叉搜索树是什么了。现在在此复习一下:
二叉搜索树是一个有序树:
- 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
- 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
- 它的左、右子树也分别为二叉搜索树
验证二叉搜索树
解题思路
两种思路,第一种方法是通过中序遍历把节点全部存进一个数组,随后判断该数组是不是一个单调递增的数列即可。第二种则是用再用迭代法的中序遍历中记录一下之前的节点进行比大小即可。
知识点
二叉搜索树,中序遍历
心得
二叉搜索树并不是简单的每个节点的左节点小于该节点,右节点大于该节点就行。在根节点左侧的节点的右节点需要比根节点要小,在根节点右侧的节点的左节点需要比其根节点要大。