將有序陣列轉換為高度平衡的二叉搜尋樹

2021-09-18 05:13:44 字數 475 閱讀 6085

將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。

本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。

示例:

給定有序陣列: [-10,-3,0,5,9],

乙個可能的答案是:[0,-3,9,-10,null,5],它可以表示下面這個高度平衡二叉搜尋樹:

0/ \

-3 9

/ /

-10 5

採用分治演算法,選擇中間元素的為根節點,剩下的元素分為部分,左邊作為左子樹,右邊作為右子樹。
public treenode sortedarraytobst(int nums) 

public treenode createtree(int nums,int l,int h)

108 將有序陣列轉換為高度平衡二叉搜尋樹

此題首先可以確定選用的演算法是遞迴 對於二叉搜尋樹我們可以知道其左葉子節點值 根節點值 右葉子節點值,故二叉搜尋樹的中序遍歷為乙個公升序陣列。即題目給的有序陣列。中序遍歷 先遍歷左子樹,在遍歷根節點,最後遍歷右子樹。如果不要求為平衡二叉搜尋樹的話,僅由乙個公升序陣列,樹的根節點就有多種不同的取值,就...

leetcode記錄 將有序陣列轉換為二叉搜尋樹

將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示下面這個高度平衡二叉搜尋樹 0 3 9 10...

LeetCode 將有序陣列轉換為二叉搜尋樹

將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示下面這個高度平衡二叉搜尋樹 0 3 9 10...