//比如一個二叉樹
// 4
// 2 6
// 1 3 5 7
//其后序遍歷為[1,3,2,5,7,6,4]
//length為7,起始時sequence.length-1=6
function VerifySquenceOfBST(sequence)
{
// write code here
if(sequence.length<=0) return;
return test(sequence,0,sequence.length-1)
}
function test(sequence,start,end){
if(start>=end) return true;//空樹也是搜索二叉樹
var i=end-1;//第一次執行test時end的位置上一定是整個二叉樹的根節點
//將數組[1,3,2,5,7,6,4]分為小于根節點4的部分和大于4的部分
//大于4的部分一定是4的右子樹,小于4的部分是左子樹
//從4的前一位開始與4比較,只要比4大,就繼續向前一位移動,最后i==2,此為為數字2,正好比4小
while(i>=start&&sequence[i]>sequence[end]){
i--;
}
//判斷從第2位再往前的位是否都比4小,如果任意一位大于4,則肯定不是搜索二叉樹
for(var j=i;j>=start;j--){
if(sequence[j]>sequence[end]){
return false;
}
}
//對root的左子樹重新當成一顆樹進行遞歸判斷;
//對root的右子樹重新當成一棵樹進行遞歸判斷;
//左右子樹都滿足搜索二叉樹條件時即整棵樹都為搜索二叉樹
return test(sequence,start,i)&&test(sequence,i+1,end-1)
}
第23題-二叉搜索樹的后序遍歷序列【JavaScript】
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...