二叉搜尋樹的範圍和

2021-10-09 10:04:57 字數 922 閱讀 3122

給定二叉搜尋樹的根結點 root,返回 l 和 r(含)之間的所有結點的值的和。

二叉搜尋樹保證具有唯一的值。

操作很簡單,深度優先遍歷

兩步操作:

第一,判斷當前節點是否為空,如果不為空執行下一步,為空不執行

第二,判斷當前的節點的值是否符合題意在l和r之間,如果符合將該值加入到總和中。,並執行該點的左右孩子

第三,繼續往下判斷,根據二叉搜尋樹的特性,如果該值小於l,搜尋該節點的右孩子,如果大於r搜尋左孩子。

int count=0;

public

int rangesumbst (treenode root,

int l,

int r)

public

void dp (treenode root,

int l,

int r)

if(root.val > r)

if(root.val < l)

}}

簡化**

int count=0;

public

int rangesumbst (treenode root,

int l,

int r)

public

void dps (treenode root,

int l,

int r)

if(root.val > l)

if(root.val < r)

}}

這種解法巧妙之處在於:

在進行第二步驟之後,會繼續進行判斷,這麼就會分為三種情況:

1、如果該節點的值在l和r之間,該點的左右孩子都會被執行

2、如果該節點小於l,那麼只會執行該節點的右孩子

3、如果該節點大於r,那麼只會執行該節點的左孩子。

9 二叉搜尋樹範圍和

leetcode刷題筆記 二叉搜尋樹範圍和 思路 遍歷二叉樹,節點的值大於l且小於r的累加至sum中。在這裡插入 片 definition for a binary tree node.struct treenode class solution intpreorder treenode root,...

LeetCode 二叉搜尋樹的範圍和

給定乙個二叉搜尋樹的根節點,以及兩個整數型別的左邊界和右邊界,計算二叉搜尋樹中介於左邊界和右邊界的整數和 包含左邊界和右邊界 注 假設二叉搜尋樹中的節點值唯一。輸入1 root 10 5,15 3,7 null,18 l 7,r 15輸出1 32輸入2 root root 10 5,15 3,7 1...

41 二叉搜尋樹的範圍和

題目描述 給定二叉搜尋樹的根結點 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...