leetcode 938.二叉搜索树

Posted wegret

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 938.二叉搜索树相关的知识,希望对你有一定的参考价值。

  中序遍历得到一个队列。然后找left和right之间的和就行了。

  (第一遍理解错了意思。看懂了就不难。)

int l,h;
int que[20007],last;

void dfs(TreeNode* now){
    if (now==NULL)  return ;
    dfs(now->left);
    que[++last]=(now->val);
    dfs(now->right);
}

class Solution {
public:
    int rangeSumBST(TreeNode* root, int low, int high) {
        last=0;
        l=low,h=high;
        dfs(root);
        int cnt=0,result=0;
        for (int i=1;i<=last;i++){
            if (que[i]==l||que[i]==h)
                cnt+=1;
            if (cnt==1)
                result+=que[i];
            else if (cnt==2)
                return result+que[i];
        }
        return 0;
    }
};

 

以上是关于leetcode 938.二叉搜索树的主要内容,如果未能解决你的问题,请参考以下文章

LEETCODE - 938. 二叉搜索树的范围和

LeetCode刷题938-简单-二叉搜索树的范围和

LeetCode刷题938-简单-二叉搜索树的范围和

LeetCode.938-范围内求二叉搜索树节点值之和(Range Sum of BST)

LeetCode 938. 二叉搜索树的范围和

[LeetCode] 938. Range Sum of BST 二叉搜索树的区间和