Problem: 669. 修剪二叉搜索树
思路
这道题可以总结为两句话:
Problem: 538. 把二叉搜索树转换为累加树
根据实例可以看出,是根据右->中->左的顺序累加的,我们只需要得到前面一个节点,与当前节点相加即可,并且直接改变原值,进行累计。
时间复杂度:
Problem: 108. 将有序数组转换为二叉搜索树
与构造二叉树相似,我们需要找到中间节点,但是这是二叉搜索树,并且给定了一个升序数组,我们只需要找到升序数组中的中间节点便可以作为二叉树的中间节点。
递归得到左节点和右节点。
Problem: 198. 打家劫舍
https://www.programmercarl.com/0198.%E6%89%93%E5%AE%B6%E5%8A%AB%E8%88%8D.html
dp数组含义: 打劫到第i间的最大收益
Problem: 235. 二叉搜索树的最近公共祖先
本题与二叉树的最近公共祖先不同之出,就是本题是二叉搜索树,可以利用二叉搜索树的有序性,如果val同时大于p q
那么往左搜索,如果val同时小于p q
那么往右边搜索,其他情况就只能是在p q
之间了,那么这个节点就是他的最大祖先,直接返回。