追求進步 二叉搜尋樹的後序遍歷序列

2021-07-10 19:09:08 字數 887 閱讀 8445

輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。

本題有兩種方法,遞迴和非遞迴

public class solution 

return verifysequenceofbst(sequence,0,sequence.length-1);

}public static boolean verifysequenceofbst(int sequence,int start,int end)

//從左到右找最後第乙個大於等於根結點的元素的位置

int index=start;//執行到此處[end, index-1]的元素都是小於根結點的(sequence[end])

while(indexsequence[end])

if (index != end - 1)

// 執行到此處說明直到目前為止,還是合法的

// [start, index-1]為根結點左子樹的位置

// [index, end-1]為根結點右子樹的位置

index = right;

return verifysequenceofbst(sequence, start, index - 1) && verifysequenceofbst(sequence, index, end - 1);}/*

這是別人的方法

int len = sequence.length - 1;

if (len < 0)

return false;

return f(sequence, 0, len);

}boolean f(int a, int s, int e) */

}

LeetCode 樹 二叉搜尋樹的後序遍歷序列

輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷結果。如果是則返回 true,否則返回 false。假設輸入的陣列的任意兩個數字都互不相同。示例 輸入 1,6,3,2,5 輸出 false 輸入 1,3,2,6,5 輸出 true說明 二叉搜尋樹的後序遍歷序列的最後乙個節點是根節點,除去最後...

二叉搜尋樹的後序遍歷

二叉搜尋樹的後序遍歷序列中,最後乙個值是根結點,前面比根節點小的是左結點,後面比根結點大的是右結點。include include bool verifysquenceofbst int sequence,int length int root sequence length 1 int i 0 在...

二叉搜尋樹的後序遍歷

描述 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷。如果是,則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。1 樣例輸入 5 7 6 9 11 10 8 1 樣例輸出 yes 2 樣例輸入 7 4 6 5 2 樣例輸出 no 首先要知道二叉搜尋樹的定義 或者是一棵空樹...