给定二叉搜索树的根结点 root
,返回值位于范围 [low, high]
之间的所有结点的值的和。
输入:root = [10,5,15,3,7,null,18], low = 7, high = 15 输出:32
解题思路:
1.遍历整颗树,左子树和右子树
2.判断当前节点值与low,high的大小关系
2.1 当前节点为空 : 返回0
2.2 当前节点的值>high: 这颗子树所有右子树节点的值肯定比high大,只考虑左子树 (例: 5<=low (low=7) 则只考虑子树 5 的右子树)
2.3 当前节点的值<low: 这颗子树所有左子树节点的值肯定比low小,只考虑右子树 ( 例: 15>=high (high=15) 则只考虑子树 15 的左子树)
2.4 当前节点在[low, high]
之间 : 遍历左右子树(左右子树肯能会有2.1