通过有序数组生成平衡搜索二叉树
生活随笔
收集整理的這篇文章主要介紹了
通过有序数组生成平衡搜索二叉树
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:給定一個有序數組sortArr,已知其中沒有重復值,用這個有序數組生成一顆平衡搜索二叉樹,并且該搜索二叉樹中序遍歷的結果與sortArr一致
思路:用有序數組最中間的數生成搜索二叉樹的頭節點,然后用這個數左邊的樹生成左子樹,用右邊的數生成右子樹即可
class Node:def __init__(self,value): self.value = valueself.left = Noneself.right = Nonedef generateTree(arr):if arr == None or len(arr)==0:return Nonereturn generate(arr,0,len(arr)-1)def generate(arr,start,end):if start > end:return Nonemid = int((start+end)/2)node = Node(arr[mid])node.left = generate(arr,start,mid-1)node.right = generate(att,mid+1,end)return node?
總結
以上是生活随笔為你收集整理的通过有序数组生成平衡搜索二叉树的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 根据后续数组重建搜索二叉树
- 下一篇: 二叉树的按层打印和ZigZag打印