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

2021-10-23 15:28:59 字數 551 閱讀 6299

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

解題思路:中序遍歷右—中—左。右子樹都是大於根節點本身的,所以右子樹的累加和就是根節點需要累加的數值。 而左子樹有些特殊。

根的左根,要累加根節點的數值。左根要累加它自身的右子樹的數值。 左根右子樹,因為小於根節點,所以計算左根右子樹的時候還要把根節點的數值算上去,因為根節點大於它。左根的左子樹要累加左跟的數值。

**:

/**

* definition for a binary tree node.

* struct treenode

* };

*/class

solution

treenode*

convertbst

(treenode* root)

};

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

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

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

題目描述 給定乙個二叉搜尋樹 binary search tree 把它轉換成為累加樹 greater tree 使得每個節點的值是原來的節點值加上所有大於它的節點值之和。例如 輸入 原始二叉搜尋樹 輸出 轉換為累加樹 方法1 在原樹上修改 主要思路 1 二叉搜尋的特性,左結點小於根節點,根節點小於...

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

給定乙個二叉搜尋樹 binary search tree 把它轉換成為累加樹 greater tree 使得每個節點的值是原來的節點值加上所有大於它的節點值之和。例如 輸入 二叉搜尋樹 5 2 13 輸出 轉換為累加樹 18 20 13 思路 二叉樹的中序遍歷結果就是從小到大的順序輸出,那麼右中左則...