通過有序陣列生成平衡搜尋二叉樹

2021-09-25 17:42:38 字數 669 閱讀 5860

題目:給定乙個有序陣列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...