LeetCode 538 把二叉搜尋樹轉換為累加樹

2021-10-09 15:37:53 字數 915 閱讀 4791

給定乙個二叉搜尋樹(binary search tree),把它轉換成為累加樹(greater tree),使得每個節點的值是原來的節點值加上所有大於它的節點值之和。

輸入: 原始二叉搜尋樹:

5/ \

2 13

輸出: 轉換為累加樹:

18/ \

20 13

二叉搜尋樹是一棵空樹,或者是具有下列性質的二叉樹:

1、若它的左子樹不空,則左子樹上所有節點的值均小於它的根節點的值;

2、若它的右子樹不空,則右子樹上所有節點的值均大於它的根節點的值;

3、它的左、右子樹也分別為二叉搜尋樹。

所以進行反向的中序遍歷進行計算

# definition for a binary tree node.

# class treenode(object):

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class solution(object):

def convertbst(self, root):

""":type root: treenode

:rtype: treenode

"""deque = collections.deque()

def dfs(root):

if root:

dfs(root.right)

root.val = sum(deque)

dfs(root.left)

dfs(root)

return root

LeetCode 538 把二叉搜尋樹轉換為累加樹

題目鏈結 給定乙個二叉搜尋樹 binary search tree 把它轉換成為累加樹 greater tree 使得每個節點的值是原來的節點值加上所有大於它的節點值之和。例如 輸入 原始二叉搜尋樹 5 2 13輸出 轉換為累加樹 18 20 13將每個點的權值存入乙個陣列然後排序,計算字首和,然後...

Leetcode 538 二叉樹轉換為累加樹

time 20190907 type easy 給定乙個二叉搜尋樹 binary search tree 把它轉換成為累加樹 greater tree 使得每個節點的值是原來的節點值加上所有大於它的節點值之和。例如 輸入 二叉搜尋樹 5 213輸出 轉換為累加樹 18 2013bst的中序遍歷是乙個...

538 把二叉搜尋樹轉換為累加樹

給定乙個二叉搜尋樹 binary search tree 把它轉換成為累加樹 greater tree 使得每個節點的值是原來的節點值加上所有大於它的節點值之和。例如 輸入 二叉搜尋樹 5 2 13 輸出 轉換為累加樹 18 20 13 和 的應用 用 傳入某值的位址,可以保留函式中修改的資料 de...