演算法練習之將有序陣列轉換為二叉搜尋樹,平衡二叉樹

2022-09-17 11:06:12 字數 1416 閱讀 3576

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

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

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

示例:

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

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

-3 9

/ /

-10 5

j**a

/**

* definition for a binary tree node.

* public class treenode

* } */

class

solution

public treenode buildtree(int nums,int l,int

r)}

php

/*

* * definition for a binary tree node.

* class treenode

* } */

class

solution

function buildtree($nums,$l,$r

)}

2.平衡二叉樹

給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。

本題中,一棵高度平衡二叉樹定義為:

乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1

示例 1:

給定二叉樹 [3,9,20,null,null,15,7]3/\

9 20

/\15 7返回

true

示例 2:

給定二叉樹 [1,2,2,3,3,null,null,4,4]1/\

2 2

/\3 3

/\4 4返回

false

j**a

/**

* definition for a binary tree node.

* public class treenode

* } */

class

solution

else

}public

intmaxdepth(treenode root)

}

php

/*

* * definition for a binary tree node.

* class treenode

* } */

class

solution

else

}function maxdepth($root

)}

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...

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

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