Lion X

** LeetCode题目解答** <Excerpt in index | 首页摘要>
LeetCode——938题目C语言实现

<The rest of contents | 余下全文>

LeetCode_938_Range Sum of BST

实现步骤

1.遍历二叉树
2.如果val<L,则遍历另一个节点
3.如果val>R,则遍历另一个节点
4.如果val>L&&val<R,则sum+=val,然后遍历此节点的子节点

代码实现(C语言)

节点结构

1
2
3
4
5
struct TreeNode{
int val;
struct TreeNode* left;
struct TreeNode* right;
};

算法实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int rangeSumBST(struct TreeNode* root, int L, int R){
if(!root){
return 0;
}
int sum = 0;
if(root->val < L){
sum += rangeSumBST(root->right, L, R);
}
else if(root->val > R){
sum += rangeSumBST(root->left, L, R);
}
else{
sum += root->val;
sum += rangeSumBST(root->left, L, R);
sum += rangeSumBST(root->right, L, R);
}
return sum;
}

 Comments