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