通过先序和中序数组生成后续数组
生活随笔
收集整理的這篇文章主要介紹了
通过先序和中序数组生成后续数组
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目:已知一顆二叉樹所有的節(jié)點(diǎn)值都不同,給定這顆樹正確的先序和中序數(shù)組,不要重建整顆樹,而是通過這兩個(gè)數(shù)組直接生成正確的后續(xù)數(shù)組
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_)?
總結(jié)
以上是生活随笔為你收集整理的通过先序和中序数组生成后续数组的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 寻找搜索二叉树中两个错误的节点
- 下一篇: 统计和生成所有不同的二叉树