輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。
思路:
class solution
public:
bool verifysquenceofbst(vectora)
};
//非遞迴
//非遞迴也是乙個基於遞迴的思想:
//左子樹一定比右子樹小,因此去掉根後,數字分為left,right兩部分,right部分的
//最後乙個數字是右子樹的根他也比左子樹所有值大,因此我們可以每次只看有子樹是否符合條件
//即可,即使到達了左子樹左子樹也可以看出由左右子樹組成的樹還想右子樹那樣處理
//對於左子樹回到了原問題,對於右子樹,左子樹的所有值都比右子樹的根小可以暫時把他看出右子樹的左子樹
//只需看看右子樹的右子樹是否符合要求即可
class solution
return true;
}};
劍指offer程式設計題《重建二叉樹》
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。我們都知道,通過前序遍歷和中序遍歷或後序遍歷和中序遍歷可以唯一確定一棵二叉樹。前序 根 左 右 中序 左 根 右 後序 左 右 根 ...
劍指offer程式設計題 重建二叉樹
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。這道題目是一道非常經典的題目,這裡可以用乙個hash表存下中序遍歷的value的index,可以快速找到index definiti...
劍指offer程式設計題 重建二叉樹
題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。方案 在二叉樹的前序遍歷序列中,第乙個數字總是樹的根節點的值 在二叉樹的中序遍歷序列中,根節點的值在序列的中間,根節點左側...