所有題目源**:git位址
題目
給出二叉 搜尋 樹的根節點,該樹的節點值各不相同,請你將其轉換為累加樹(greater sum tree),使每個節點 node 的新值等於原樹中大於或等於 node.val 的值之和。
節點的左子樹僅包含鍵 小於 節點鍵的節點。
節點的右子樹僅包含鍵 大於 節點鍵的節點。
左右子樹也必須是二叉搜尋樹。
注意:本題和 1038
相同
示例 1:
輸入:[4,
1,6,
0,2,
5,7,null,null,null,
3,null,null,null,8]
輸出:[30,
36,21,
36,35,
26,15,null,null,null,
33,null,null,null,8]
示例 2:
輸入:root =[0
,null,1]
輸出:[
1,null,1]
示例 3:
輸入:root =[1
,0,2
]輸出:[3,
3,2]
示例 4:
輸入:root =[3
,2,4
,1]輸出:[7,
9,4,
10]樹中的節點數介於 0 和 104 之間。
每個節點的值介於 -
104 和 104 之間。
樹中的所有值 互不相同 。
給定的樹為二叉搜尋樹。
方案:/**
* definition for a binary tree node.
* struct treenode
* treenode(int x) : val(x), left(nullptr), right(nullptr) {}
* treenode(int x, treenode *left, treenode *right) : val(x), left(left), right(right) {}
* };
*/class
solution
//反中序
intdfs
(treenode* root,
int sum)
};
複雜度計算 538 把二叉搜尋樹轉換為累加樹C
題目描述 給定乙個二叉搜尋樹 binary search tree 把它轉換成為累加樹 greater tree 使得每個節點的值是原來的節點值加上所有大於它的節點值之和。解題思路 中序遍歷右 中 左。右子樹都是大於根節點本身的,所以右子樹的累加和就是根節點需要累加的數值。而左子樹有些特殊。根的左根...
538 把二叉搜尋樹轉換為累加樹
給定乙個二叉搜尋樹 binary search tree 把它轉換成為累加樹 greater tree 使得每個節點的值是原來的節點值加上所有大於它的節點值之和。例如 輸入 二叉搜尋樹 5 2 13 輸出 轉換為累加樹 18 20 13 和 的應用 用 傳入某值的位址,可以保留函式中修改的資料 de...
538 把二叉搜尋樹轉換為累加樹
題目描述 給定乙個二叉搜尋樹 binary search tree 把它轉換成為累加樹 greater tree 使得每個節點的值是原來的節點值加上所有大於它的節點值之和。例如 輸入 原始二叉搜尋樹 輸出 轉換為累加樹 方法1 在原樹上修改 主要思路 1 二叉搜尋的特性,左結點小於根節點,根節點小於...