Tree 538. Convert BST to Greater Tree

這道題讓我們將二叉搜索樹轉為較大樹,通過題目匯總的例子可以明白,是把每個結點值加上所有比它大的結點值總和當作新的結點值。

二叉搜索樹的定義:
BST 的定義:(二叉搜索樹)
左子樹的所有節(jié)點值都小于根節(jié)點;
右子樹的所有節(jié)點值都大于根結點;
左右子樹也是BST

可以知道,根結點轉化后=根節(jié)點+所有右子樹節(jié)點的和
那么,觀察右子樹,其根結點a轉化后=根結點a+其所有右子樹節(jié)點的和
以此類推,可以知道必須先對最后一個右子樹處理
對于最后一個右子樹,根結點b = b+右節(jié)點c;
右節(jié)點c = c;
左節(jié)點a = a+初始b+初始c。
也就是說,變量sum初始為0
1、先求原始值sum = c;
2、到根結點,sum = b+c,然后b = sum
3、到左節(jié)點,根結點、右節(jié)點都大于它,所以 sum = a+sum;a=sum

上面123所述,可以看出是右根左的中序遍歷,因此有以下代碼:

11.PNG
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • B樹的定義 一棵m階的B樹滿足下列條件: 樹中每個結點至多有m個孩子。 除根結點和葉子結點外,其它每個結點至少有m...
    文檔隨手記閱讀 13,675評論 0 25
  • 課程介紹 先修課:概率統(tǒng)計,程序設計實習,集合論與圖論 后續(xù)課:算法分析與設計,編譯原理,操作系統(tǒng),數(shù)據(jù)庫概論,人...
    ShellyWhen閱讀 2,465評論 0 3
  • 參考兩篇其他bolg總結的二叉樹:https://github.com/xy7313/lintcode/blob/...
    暗黑破壞球嘿哈閱讀 2,513評論 0 1
  • 一. 算法之變,結構為宗 計算機在很多情況下被應用于檢索數(shù)據(jù),比如航空和鐵路運輸業(yè)的航班信息和列車時刻表的查詢,都...
    Leesper閱讀 7,383評論 13 42
  • B樹 1.前言: 動態(tài)查找樹主要有:二叉查找樹(Binary Search Tree),平衡二叉查找樹(Balan...
    鐵甲依然在_978f閱讀 1,527評論 0 4

友情鏈接更多精彩內容