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

2021-10-25 13:24:25 字數 658 閱讀 6070

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

與上一題基本一致

不同的是上一題中索引找出中間元素,這題用快慢指標找出中間元素

快指標一次往後迭代兩個節點,慢指標一次乙個,當快指標到達末尾時,慢指標指向中間元素

class

solution

if(head.next == null)

// 快慢指標找中間元素

listnode pre = null;

listnode slow = head;

listnode quick = head;

while

(quick != null && quick.next != null)

pre.next = null;

// 注意要斷開

treenode root =

newtreenode

(slow.val)

; root.left =

sortedlisttobst

(head)

; root.right =

sortedlisttobst

(slow.next)

;return root;

}}

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