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

2021-09-11 20:26:48 字數 682 閱讀 5326

題目描述

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

二叉搜尋樹具有以下性質:

1、如果節點的左子樹不空,則左子樹上所有結點的值均小於等於它的根結點的值;

2、如果節點的右子樹不空,則右子樹上所有結點的值均大於等於它的根結點的值;

3、任意節點的左、右子樹也分別為二叉查詢樹;

解題思路

二叉搜尋樹: 左子樹<=根<=右子樹

對於後序遍歷來說,序列陣列的最後乙個元素一定是根節點, 根據這個元素,將前面的陣列分為左、右兩個部分,左側部分都比該元素小,右側部分都比該元素大,如果右側部分有比該根節點小的元素,那麼就不是後序遍歷,如此遞迴進行。

參考**

public

class

solution

public

boolean

judge

(int

sequence,

int start,

int root)

return

(judge

(sequence, start, i-1)

)&&(judge

(sequence, i, root-1)

);}}

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

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

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

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

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

題目描述 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。簡單思路 二叉搜尋樹 1.左孩子 根 右孩子 2.bst的左孩子和右孩子都是bst 發現對於每一棵子樹,它的根結點總是對應該子樹的後序序列的最後乙個數 ...