思路:對於乙個二叉樹的後序遍歷序列來說,最後乙個數一定是根節點,然後前面的數中,從最開始到第乙個大於根節點的數都是左子樹中的數,而後面到倒數第二個數應該都是大於根節點的,是右子樹,如果後面的數中有小於根節點的,那麼說明這個序列不是二叉搜尋樹的後序遍歷序列。
public class judgehouxubainli ;
boolean result = false;
result = judge(array);
system.out.println(result);
}private static boolean judge(int array)
if(array == null || array.length == 0)
int root = array[array.length - 1];
int i = 0;
for(; i < array.length-1; ++i)
}int j = i;
for(; j< array.length-1; ++j)
}judge(arrays.copyofrange(array, 0, i));
judge(arrays.copyofrange(array, i, array.length-1));
return true;
}
劍指offer 二叉樹的後序遍歷序列
輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。思路 這題目有點特殊,主要在於序列為空的時候,不是後序遍歷,返回的是false,但是在遞迴的時候,遞迴基要寫true,因為如果寫false,那麼遞迴的所有結果都是...
劍指offer 二叉樹 二叉搜尋樹的後序遍歷
輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。例如輸返回true 輸入返回false 1,利用二叉搜尋樹左 中 右的特性,和後序遍歷的特點 2,後序遍歷為左右根,則陣列末尾為根,然後依據大小找出左子樹和右子樹...
劍指offer 二叉樹遍歷
deque佇列 deque佇列 給定一棵二叉搜尋樹,請找出其中第k大的節點。二叉搜尋樹本身就有規律 左子樹比根節點小,右子樹比根節點大 二叉搜尋樹的中序遍歷為 遞增序列 中序遍歷的倒序 判斷 defkthlargest self,root treenode,k int int defhelper r...