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

2021-10-24 12:43:57 字數 803 閱讀 4208

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

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

類似第108題,依然採用遞迴和二分法。

自己的方法,用了快慢指標來尋找鍊錶的中點,並在中點的位置處截斷鍊錶。注意還需要用乙個pre指標還記錄中點位置(slow)的前驅節點。

class

solution

public treenode helper

(listnode head)

pre.next=null;

//截斷

treenode node=

newtreenode

(slow.val)

; node.left=

helper

(head)

; node.right=

helper

(slow.next)

;return node;

}}

別人的方法(去掉了pre指標,而是又寫了乙個函式,把二分的兩個端點作為傳入的引數)

class

solution

public treenode helper

(listnode left,listnode right)

public listnode getmid

(listnode left,listnode right)

return slow;

}}

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

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

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

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

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

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