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