簡單演算法 30 將有序陣列轉換為二叉搜尋樹

2022-08-01 07:24:07 字數 799 閱讀 1941

題目:

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

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

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

],乙個可能的答案是:[

0,-3,9,-10,null,5

],它可以表示下面這個高度平衡二叉搜尋樹:

0 /\

-39 / /

-105

解題思路如下:

每次取陣列最中間的資料作為根節點,陣列分為半部分和後半部分,前半部分構成bst的左子樹,後半部分構成bst的右子樹,依次遞迴。

**如下:

/*

* * definition for a binary tree node.

* struct treenode

* }; */

class

solution

int mid = (left+right)/2

; treenode * root = new

treenode(nums[mid]);

root->left = creatbst(nums,left,mid-1

); root->right = creatbst(nums,mid+1

,right);

return

root;

}treenode* sortedarraytobst(vector&nums)

};

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

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

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

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

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

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