劍指offer 二叉樹的後序遍歷

2022-05-08 20:57:12 字數 656 閱讀 5694

思路:對於乙個二叉樹的後序遍歷序列來說,最後乙個數一定是根節點,然後前面的數中,從最開始到第乙個大於根節點的數都是左子樹中的數,而後面到倒數第二個數應該都是大於根節點的,是右子樹,如果後面的數中有小於根節點的,那麼說明這個序列不是二叉搜尋樹的後序遍歷序列。

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...