輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。
class solution
};
① 若二叉搜尋樹為空,則返回false;
② 因為是後序遍歷,所以陣列最後乙個元素為根節點;
③ 在陣列中找到右子樹部分,用 mid 標記這部分第乙個元素的位置;
④ 那麼左子數在陣列中的範圍為(0,mid - 1);
⑤ 遞迴判斷左子樹部分是否為二叉搜尋樹,若有不滿足的子樹,則返回false,否則遍歷整個左子樹;
⑥ 遞迴判斷右子樹部分是否為二叉搜尋樹,若有不滿足的子樹,則返回false,否則遍歷整個右子樹;
class solution
bool judge (vectorres, int left, int right)
//遞迴判斷左右子樹
return judge(res, left, mid-1) && judge(res, mid, right-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 發現對於每一棵子樹,它的根結點總是對應該子樹的後序序列的最後乙個數 ...