給定二叉搜尋樹的根結點 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, r = 10
輸出:23
樹中的結點數量最多為 10000 個。
最終的答案保證小於 2^31。
思路:dfs**好
遍歷所有節點, 若l<=node.val<=r, 計入和中, 否則丟掉值.
題解:解法一 直觀解法
/**
* definition for a binary tree node.
* public class treenode
* }*/class
solution
if(root.val>=l&&root.val<=r)
rangesumbst
(root.left,l,r)
;rangesumbst
(root.right,l,r)
;return sum;
}}
解法二 充分利用遞迴機制
class
solution
int temp=0;
if(root.val>=l&&root.val<=r)
return
rangesumbst
(root.left,l,r)
+rangesumbst
(root.right,l,r)
+ temp;
}}
二叉搜尋樹的範圍和
給定二叉搜尋樹的根結點 root,返回 l 和 r 含 之間的所有結點的值的和。二叉搜尋樹保證具有唯一的值。操作很簡單,深度優先遍歷 兩步操作 第一,判斷當前節點是否為空,如果不為空執行下一步,為空不執行 第二,判斷當前的節點的值是否符合題意在l和r之間,如果符合將該值加入到總和中。並執行該點的左右...
演算法導論之二叉搜尋樹
二叉搜尋樹上的基本操作所花費的時間與這棵樹的高度成正比。二叉搜尋樹中的關鍵字總是以滿足二叉搜尋樹的性質的方式來進行儲存的 設x是二叉搜尋樹中的乙個結點,如果y是x左子樹中的乙個結點,那麼y.key x.key。如果y是x右子樹中的乙個結點,那麼y.key x.key。先序遍歷 中序遍歷 inorde...
9 二叉搜尋樹範圍和
leetcode刷題筆記 二叉搜尋樹範圍和 思路 遍歷二叉樹,節點的值大於l且小於r的累加至sum中。在這裡插入 片 definition for a binary tree node.struct treenode class solution intpreorder treenode root,...