leetcode 938. 二叉搜尋樹的範圍和
阿新 • • 發佈:2018-11-14
給定二叉搜尋樹的根結點 root
,返回 L
和 R
(含)之間的所有結點的值的和。
二叉搜尋樹保證具有唯一的值。
示例 1:
輸入:root = [10,5,15,3,7,null,18], L = 7, R = 15 輸出:32
示例 2:
輸入:root = [10,5,15,3,7,13,18,1,null,6], L = 6, R = 10 輸出:23
提示:
- 樹中的結點數量最多為
10000
個。 - 最終的答案保證小於
2^31
。
思路:
程式碼:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public int rangeSumBST(TreeNode root, int L, int R) { List<Integer> al = new ArrayList<>(); range(root,al); int sum = 0; for(int i = 0;i < al.size();i++){ if(al.get(i) >= L && al.get(i) <= R){ sum += al.get(i); } } return sum; } public void range(TreeNode root,List<Integer> list){ if(root != null){ range(root.left,list); list.add(root.val); range(root.right,list); } } }