輸入:root =
[10,5,15,3,7,null,18], l = 7, r = 15
輸出:32 = 10 + 7 + 15
輸入:root =
[10,5,15,3,7,13,18,1,null,6], l = 6, r = 10
輸出:23 = 10 + 7 + 6
剪枝
/**
不剪枝
class
solution
int ans =0;
ans = ans +
rangesumbst
(root.left, l, r)
;// 一直遞迴到最下面的那個節點
如果當前節點值小於l,說明其左子樹所有節點均小於l,可以將左子樹剪去;
如果當前節點值大於r,說明其右子樹所有節點均大於r,可以將右子樹剪去;
否則,可以將其值累加上,並且分別對左右節點遞迴函式即可。即:當前節點值 + 左子樹 + 右子樹
/**
* definition for a binary tree node.
* public class treenode
* }*/class
solution
int ans =0;
if(root.val < l)
if(root.val > r)
//當前節點再兩數之間,把自身值加到結果裡取,並往左右子節點遞迴
938 二叉搜尋樹的範圍和
題意 給定二叉搜尋樹的根結點 root,返回 l 和 r 含 之間的所有結點的值的和。二叉搜尋樹保證具有唯一的值。思路 題意不難,但是對python的因為是的動態語言,所以不會優先使用全域性變數,所以要指定變數 code class solution object defrangesumbst se...
938 二叉搜尋樹的範圍和
938.二叉搜尋樹的範圍和 給定二叉搜尋樹的根結點 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,n...
938 二叉搜尋樹的範圍和
給定二叉搜尋樹的根結點root,返回值位於範圍 low,high 之間的所有結點的值的和。示例 輸入 root 10,5,15,3,7,null,18 low 7,high 15 輸出 32 由於給定的是二叉搜尋樹,我們就要充分利用好二叉搜尋樹的特性,不必對節點全部遍歷。我們可以用深度優先搜尋進行範...