題目:給定乙個有序陣列sortarr,已知其中沒有重複值,用這個有序陣列生成一顆平衡搜尋二叉樹,並且該搜尋二叉樹中序遍歷的結果與sortarr一致
思路:用有序陣列最中間的數生成搜尋二叉樹的頭節點,然後用這個數左邊的樹生成左子樹,用右邊的數生成右子樹即可
class node:
def __init__(self,value):
self.value = value
self.left = none
self.right = none
def generatetree(arr):
if arr == none or len(arr)==0:
return none
return generate(arr,0,len(arr)-1)
def generate(arr,start,end):
if start > end:
return none
mid = int((start+end)/2)
node = node(arr[mid])
node.left = generate(arr,start,mid-1)
node.right = generate(att,mid+1,end)
return node
通過有序陣列生成平衡搜尋二叉樹
題目 給定乙個有序陣列arr,已知其中沒有重複值,用這個有序陣列生成一棵平衡搜尋二叉樹,並且該搜尋二叉樹中序遍歷的結果與arr一致。通過有序陣列生成平衡搜尋二叉樹 public static node generatetree int arr return generate arr,0,arr.le...
通過有序陣列生成平衡搜尋二叉樹
題目 給定乙個有序陣列sortarr,已知其中沒有重複值,用這個有序陣列生成一棵平衡搜尋二叉樹,並且該搜尋二叉樹中序遍歷的結果與sortarr一致。public class geneartetree public static node generatetree int arr return gen...
有序陣列轉成平衡二叉樹,平衡二叉樹轉成雙端鍊錶
include include using namespace std 二叉樹的樹結構 struct treenode 有序陣列轉成平衡二叉樹 也是乙個遞迴的過程,每次都把陣列分為兩個部分,作為左子樹和右子樹。treenode sortedarray2bst vector nums treenode...