刷題第十一天
今天一定要結(jié)束二叉樹!?。?/p>
98. 驗(yàn)證二叉搜索樹:
這題需要知道二叉搜索樹的特點(diǎn),中序遍歷的話是遞增的數(shù)組。所以只要中序遍歷就可以了。

108. 將有序數(shù)組轉(zhuǎn)換為二叉搜索樹:
這題遞歸很簡(jiǎn)單。如果數(shù)組空返回null,找到數(shù)組的中點(diǎn)i,中點(diǎn)就是當(dāng)前的root,然后將數(shù)組分為i前,遞歸左子樹,i后遞歸右子樹。

450. 刪除二叉搜索樹中的節(jié)點(diǎn):
如果root為null,返回null,如果root的val大于key,說明key在左子樹,遞歸左子樹,root的left等于遞歸的返回值。如果val等于key,就找到root的右子樹的最小值node,也就是右子樹的最左節(jié)點(diǎn),令root的值等于node,再遞歸刪除node節(jié)點(diǎn),key為node的val,root的right等于遞歸返回值。

501. 二叉搜索樹中的眾數(shù):
先中序遍歷,結(jié)果輸出到數(shù)組中,然后處理數(shù)組,計(jì)數(shù)。

530. 二叉搜索樹的最小絕對(duì)差:
先中序遍歷,結(jié)果輸出到數(shù)組中,然后比較前后兩個(gè)數(shù)的差,取最小值。

538. 把二叉搜索樹轉(zhuǎn)換為累加樹:
這是一個(gè)中序遍歷,只不過是右根左的順序。用一個(gè)sum的全局變量,初始化為0,在root改變val時(shí),sum要加上val值。

700. 二叉搜索樹中的搜索:
如果root.val小于val,root等于遞歸的root右子樹的返回值,大于val,為遞歸的root左子樹的返回值。最后返回root。

701. 二叉搜索樹中的插入操作:
如果root為null,就說明當(dāng)前是插入的位置。如果root.val大于val,root的left等于遞歸left的返回值。最后返回root。

110. 平衡二叉樹:
遞歸函數(shù),參數(shù)為root,返回值int,返回當(dāng)前最大的深度。
標(biāo)簽: