代码随想录刷题第23天

今天是二叉树的终章,不知不觉已经刷题23天了,先给自己点个赞

第一题是修剪二叉搜索树,要注意修剪时被删除节点的子树可能符合要求,因此还需向下遍历。最后用root->left与right接住返回值。

代码随想录刷题第23天_第1张图片

 迭代法先将root移动到满足范围内,然后将左右子树进行剪枝。代码如下:

代码随想录刷题第23天_第2张图片

第二题是将有序数组转换为平衡二叉搜索树,借鉴二叉搜索树节点的插入,进行数组的区间分割,由于要求构造树的平衡性,根节点应选在数组中间处。

 代码随想录刷题第23天_第3张图片

 二叉树的最后一题是将二叉搜索树转化为累加树。题没太读懂意思,直接看的解析。发现是自己想多了,就是从大往小累加。遍历顺序为右中左,利用双指针法进行累加。

代码随想录刷题第23天_第4张图片

 迭代法代码如下:

代码随想录刷题第23天_第5张图片

 二叉树这一章节结束了,这一章节涉及了树的遍历,构造与修改,二叉搜索树的相关性质,收获满满回归知识之余,也感慨我在磕磕绊绊中坚持了下来,坚持很苦,奋斗很酷!

 

 

 

 

 

你可能感兴趣的:(leetcode,算法,数据结构)