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; } };

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号