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

2021-10-09 22:59:29 字數 595 閱讀 7533

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

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

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

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

0

/ \

-3 9

/ /-10 5

思路:二分法尋找陣列最中間的乙個樹作為根節點,以中間節點作為界限,左邊是左子樹,右邊是右子樹。遞迴的終止條件是左節點大於右節點返回空字串。左子樹和右子樹中利用遞迴尋找節點。

/**

* definition for a binary tree node.

* struct treenode

* };

*/class

solution

treenode*

cut(vector<

int>

& num,

int left,

int right)

};

108將有序陣列轉化為二查搜尋樹

definition for a binary tree node.class treenode def init self,x self.val x self.left none self.right none from typing import list class solution def ...

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

示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示下面這個高度平衡二叉搜尋樹 0 3 9 10 5大致思路,二叉搜尋樹的特性就是根節點的左子樹中的數都小於根節點,右子樹都大於根節點。這就想到了用二分法,找到中間的數,則這個數左邊的數比它小,右邊數比...

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

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