Leetcode 5179 將二叉搜尋樹變平衡

2021-10-03 22:06:41 字數 492 閱讀 9046

給你一顆二叉搜尋樹,請你返回一顆平衡後的二叉搜素樹,新生成的樹應該與原來的樹有著相同的節點值。

如果一顆二叉搜素樹中,每個節點的兩顆子樹高度差不超過1,我們就稱這棵二叉搜尋樹是平衡的。

如果有種構造方法,請你返回任意一種。

示例:輸入:root = [1,null,2,null,3,null,4,null,null]

輸出:[2,1,3,null,null,null,4]

解釋:這不是唯一的正確答案,[3,1,4,null,2,null,null] 也是乙個可行的構造方案。

樹節點的數目在 1 到 10^4 之間。

樹節點的值互不相同,且在 1 到 10^5 之間。

class solution 

treenode* help(vector& vals,int l,int r)

treenode* balancebst(treenode* root)

};

leetcode 二叉樹 驗證二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 1 3 輸出 true 示例 2 輸入 5 1 4 3 6 輸出 false 解釋 ...

leetcode 二叉樹 對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3 方法一 遞迴 思路 如果乙個樹的左子樹與右子樹映象對稱,則該樹是對稱的 兩個樹互為映象的...

LeetCode (二叉樹)反轉二叉樹

遞迴交換每乙個節點的左右子樹,重點在於訪問每乙個節點,然後交換左右子樹 definition for a binary tree node.struct treenode struct treenode inverttree struct treenode root 由於至少要講每乙個節點都訪問一次...