根據後序陣列重建搜尋二叉樹

2021-09-11 19:56:37 字數 1289 閱讀 5880

【題目】給定乙個整型陣列arr,已知其中沒有重複值,判斷arr是否可能是節點值型別為整型的搜尋二叉樹後序遍歷的結果。

public

class

ispostarray

return

ispost

(arr,

0, arr.length -1)

;}public

static

boolean

ispost

(int

arr,

int start,

int end)

int less =-1

;int more = end;

for(

int i = start; i < end; i++

)else}if

(less ==-1

|| more == end)

if(less != more -1)

return

ispost

(arr, start, less)

&&ispost

(arr, more, end -1)

;}}

【高階】如果整型陣列arr中沒有重複值,且已知是一棵搜尋二叉樹的後序遍歷結果,通過陣列arr重構二叉樹。

public

static

class

node

}public

static node posarraytobst

(int

arr)

return

postobst

(arr,

0, arr.length -1)

;}public

static node postobst

(int

arr,

int start,

int end)

int less =-1

;int more = end;

node head =

newnode

(arr[end]);

for(

int i = start; i < end; i++

)else

} head.left =

postobst

(arr, start, less)

; head.right =

postobst

(arr, more, end -1)

;return head;

}

根據後序陣列重建搜尋二叉樹

根據後序陣列重建搜尋二叉樹 給定乙個有 n 個不重複整數的陣列 arr,判斷 arr 是否可能是節點值型別為整數的搜尋二叉樹後序遍歷的結果。輸入描述 第一行乙個整數 n,表示陣列的長度。第二行 n 個整數 arr i。輸出描述 如果是搜尋二叉樹後序遍歷的結果則輸出 true 否則輸出 false 示...

根據後序陣列重建搜尋二叉樹

題目 根據後序陣列重建搜尋二叉樹 程式設計師 面試指南 第44題 p148 難度 士 原問題為判斷陣列arr是否可能是搜尋二叉樹後序遍歷的結果,高階問題為通過陣列arr重構二叉樹。原問題的解法 根據二叉樹後序遍歷的順序 左 右 根,頭節點的值一定是陣列的最後乙個元素。然後將除最後乙個元素的陣列一分為...

根據後序陣列重建二叉樹

題目 給定乙個整型陣列arr,已知沒有重複值,判斷arr是否可能是節點值型別為整型的搜尋二叉樹後序遍歷的結果。高階問題 如果整型陣列中沒有重複值,且已知是一棵二叉搜尋樹的後序遍歷結果,通過arr重構二叉樹。解答 二叉樹的後序遍歷是先左 再右 最後根的順序,所以,頭節點一定是陣列的最後乙個元素。根據搜...