通过先序和中序数组生成后续数组
生活随笔
收集整理的這篇文章主要介紹了
通过先序和中序数组生成后续数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:已知一顆二叉樹所有的節點值都不同,給定這顆樹正確的先序和中序數組,不要重建整顆樹,而是通過這兩個數組直接生成正確的后續數組
def getPosArray(pre,mid):if pre == None or mid == None:return Nonepos = [None for i in range(len(mid))]map_ = {}for i in range(len(mid)):map_[mid[i]] = isetPos(pre,0,len(pre)-1,mid,0,len(pre)-1,pos,len(pos)-1,map_)def setPos(pre,p1,pn,mid,m1,mn,pos,p,map_):if p1 > pn:return Nonepos[p] = pre[p1]p -=1i = map_[pre[p1]]p = setPos(pre,pn - mn + i + i, pn , mid, i+1, mn,pos,p,map_)return setPos(pre,p1 + 1, p1 + i -m1, mid, m1,i-1, pos,p,map_)?
總結
以上是生活随笔為你收集整理的通过先序和中序数组生成后续数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 寻找搜索二叉树中两个错误的节点
- 下一篇: 统计和生成所有不同的二叉树