今天是二叉树的终章,不知不觉已经刷题23天了,先给自己点个赞
第一题是修剪二叉搜索树,要注意修剪时被删除节点的子树可能符合要求,因此还需向下遍历。最后用root->left与right接住返回值。
迭代法先将root移动到满足范围内,然后将左右子树进行剪枝。代码如下:
第二题是将有序数组转换为平衡二叉搜索树,借鉴二叉搜索树节点的插入,进行数组的区间分割,由于要求构造树的平衡性,根节点应选在数组中间处。
二叉树的最后一题是将二叉搜索树转化为累加树。题没太读懂意思,直接看的解析。发现是自己想多了,就是从大往小累加。遍历顺序为右中左,利用双指针法进行累加。
迭代法代码如下:
二叉树这一章节结束了,这一章节涉及了树的遍历,构造与修改,二叉搜索树的相关性质,收获满满回归知识之余,也感慨我在磕磕绊绊中坚持了下来,坚持很苦,奋斗很酷!