938 二叉搜尋樹的範圍和

2022-10-02 07:03:12 字數 763 閱讀 3158

給定二叉搜尋樹的根結點root,返回值位於範圍[low, high]之間的所有結點的值的和。

示例:

輸入:root = [10,5,15,3,7,null,18], low = 7, high = 15

輸出:32

由於給定的是二叉搜尋樹,我們就要充分利用好二叉搜尋樹的特性,不必對節點全部遍歷。我們可以用深度優先搜尋進行範圍和的求解,分為以下四種情況:

當前節點為空,返回0;

當前節點的val小於區間[low,high],由於二叉搜尋樹左子樹上所有節點的值均小於根節點的值,即均小於low,故無需考慮左子樹,向右子樹進行搜尋。

當前節點的val大於區間[low,high],由於二叉搜尋樹右子樹上所有節點的值均大於根節點的值,即均大於high,故無需考慮右子樹,向左子樹進行搜尋。

當前節點的val在區間[low,high]範圍內(包含邊界),那麼範圍和要加上當前節點的值,同時對左右子樹分別進行搜尋。

var rangesumbst = function

(root, low, high)

let sum = 0;

if(root.val

else

if(root.val>high)

else

return

sum;

};

938 二叉搜尋樹的範圍和

題意 給定二叉搜尋樹的根結點 root,返回 l 和 r 含 之間的所有結點的值的和。二叉搜尋樹保證具有唯一的值。思路 題意不難,但是對python的因為是的動態語言,所以不會優先使用全域性變數,所以要指定變數 code class solution object defrangesumbst se...

938 二叉搜尋樹的範圍和

輸入 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 ran...

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...