輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。
設計思想:
序列的最後乙個元素一定是整棵樹的根節點,從序列開頭找第乙個大於根節點值的元素p->val,該元素後邊直到末尾前乙個元素的元素值應該都大於p->val(若p到末尾之間還有元素,才滿足後序遍歷的二叉搜尋樹),[p,末尾節點)將是根節點的右子樹。如果從到遍歷到末尾也沒找到大於根節點的元素,則根節點只有左子樹沒有右子樹。想到這裡,遞迴的設計思想就出來了
class solution
};
劍指Offer面試題 33 二叉樹的深度
題目一 輸入一棵二叉樹的根結點,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如下圖中的二叉樹的深度為4,因為它從根結點到葉結點最長的路徑包含4個結點 從根結點1開始,經過結點2和結點5,最終到達葉結點7 二叉樹的結點定義如下,這裡使用c ...
《劍指Offer》面試題 平衡二叉樹
題目 輸入乙個二叉樹的根節點,判斷該樹是不是平衡二叉樹。如果某二叉樹中任意節點的左右子樹的深度相差不超過1,那麼它就是一棵平衡二叉樹。思路 用後序遍歷實現 先遍歷節點的左右子樹,左右子樹都平衡才來判斷該節點是否平衡,如果左右子樹中有不平衡的,則直接返回false,避免了從上往下逐個節點地計算深度帶來...
劍指 面試題33 二叉搜尋樹的後序遍歷
題目 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷結果。如果是則返回 true,否則返回 false。假設輸入的陣列的任意兩個數字都互不相同。思路 1 遞迴判斷左右子樹是不是二叉搜尋樹。2 輸入序列的最後乙個元素是二叉搜尋樹的根節點,前面的可分為左右子樹,其中左子樹小於根節點,右子樹大於...