【題目】給定乙個整型陣列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重構二叉樹。解答 二叉樹的後序遍歷是先左 再右 最後根的順序,所以,頭節點一定是陣列的最後乙個元素。根據搜...