day21
1.669. 修剪二叉搜索树(难):递归法,当当前节点的值小于区间最小值,就遍历其右子树(左子树肯定都不符合条件,可以完全放弃了),直到返回符合条件的结点作为当前根节点(大于区间最大值时同理)。
然后再继续处理下一层,即对它的左右结点分别作为根节点进行递归,最后将处理后得到的结果作为左右子节点返回给当前根节点。
2.108.将有序数组转换为二叉搜索树:要求是平衡二叉搜索树,所以取数组中间值作为根节点,然后进行分割。再递归获取左右子树的根节点(根据分割点生成相对应的左右子树的区间)。
3.538.把二叉搜索树转换为累加树:题目要求把当前结点与比它大的值都做一个相加操作。采用递归右中左遍历(结点值是倒序的),双指针执行相加操作。
文本查询项目终于搞清楚了各个类之间的关系,以及函数调用的过程。但还是有点懵懵的,等后面学了面向对象的设计应该会有更深的理解。
然后再继续处理下一层,即对它的左右结点分别作为根节点进行递归,最后将处理后得到的结果作为左右子节点返回给当前根节点。
2.108.将有序数组转换为二叉搜索树:要求是平衡二叉搜索树,所以取数组中间值作为根节点,然后进行分割。再递归获取左右子树的根节点(根据分割点生成相对应的左右子树的区间)。
3.538.把二叉搜索树转换为累加树:题目要求把当前结点与比它大的值都做一个相加操作。采用递归右中左遍历(结点值是倒序的),双指针执行相加操作。
文本查询项目终于搞清楚了各个类之间的关系,以及函数调用的过程。但还是有点懵懵的,等后面学了面向对象的设计应该会有更深的理解。
全部评论
相关推荐
点赞 评论 收藏
分享