109 有序鍊錶轉換二叉搜尋樹

2021-10-09 06:59:17 字數 952 閱讀 4336

給定乙個單鏈表,其中的元素按公升序排序,將其轉換為高度平衡的二叉搜尋樹。

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

示例:給定的有序鍊錶: [-10

,-3,

0,5,

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

-3,9

,-10, null,5]

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

0/ \ -39

//-10

5//leetcode-cn.com/problems/convert-sorted-list-to-binary-search-tree

以鍊錶的中點作為根節點,左右鍊錶再這樣進行遞迴,放回根節點的值作為左孩子和右孩子。

**

class

solution

listnode* slow = head,

*fast = head,

*prev = head;

while

(fast !=

null

&& fast-

>next !=

null

) prev-

>next =

null

; root =

newtreenode

(slow-

>val)

; root-

>left =

sortedlisttobst

(head)

; root-

>right =

sortedlisttobst

(slow-

>next)

;return root;}}

;

109 有序鍊錶轉換二叉搜尋樹

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

109 有序鍊錶轉換二叉搜尋樹

這道題是將有序鍊錶轉化成高度平衡的二叉查詢樹。於是晚上用自己的電腦,重新在本地編譯器上手打了一遍再提交突然就好了 emmm mark一下,可能是一些格式問題吧。definition for singly linked list.class listnode def init self,x self....

109 有序鍊錶轉換二叉搜尋樹

109.有序鍊錶轉換二叉搜尋樹 給定乙個單鏈表,其中的元素按公升序排序,將其轉換為高度平衡的二叉搜尋樹。本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例 給定的有序鍊錶 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示...