938 二叉搜尋樹的範圍和

2021-10-07 05:17:26 字數 2111 閱讀 8580

輸入: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 由於給定的是二叉搜尋樹,我們就要充分利用好二叉搜尋樹的特性,不必對節點全部遍歷。我們可以用深度優先搜尋進行範...