劍指offer 二叉搜尋樹的後序遍歷

2021-10-03 16:44:47 字數 720 閱讀 9492

【題目描述】輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。

【簡單思路】

二叉搜尋樹:

1.左孩子《根《右孩子;

2.bst的左孩子和右孩子都是bst

發現對於每一棵子樹,它的根結點總是對應該子樹的後序序列的最後乙個數 那麼,只需要不斷地確定出左子樹區間和右子樹區間,並且判斷:左子樹區間的所有結點值 < 根結點值 < 右子樹區間所有結點值,這個條件是否滿足即可

public

class

solution

return

isbst

(sequence,

0, sequence.length-1)

;}private

boolean

isbst

(int

seq,

int start,

int end)

int val = seq[end]

;int split = start;

for(

; splitfor(

int i=split; ireturn

isbst

(seq, start, split-1)

&&isbst

(seq, split, end-1)

;}}

劍指Offer 二叉搜尋樹的後序遍歷

輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。author zy date 2017年10月13日 下午9 34 21 decription 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如...

劍指offer 二叉搜尋樹的後序遍歷

時間限制 1秒 空間限制 32768k 熱度指數 524747 本題知識點 棧 樹輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。這兩天狀態不行,沒多大刷題的動力。菜還不想動,說的大概就是我了。遞迴 大佬的思路...

劍指offer 二叉搜尋樹的後序遍歷

輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。一開始不是很明白題目意思,以為是讓我後序遍歷某棵二叉樹 後來搞明白了。二叉搜尋樹就像是二分查詢裡面的,左子樹的所有元素都小於根節點,右子樹的所有元素都大於根節點。...