日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

【剑指Offer】23、二叉搜索树的后序遍历序列

發(fā)布時(shí)間:2023/11/27 生活经验 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【剑指Offer】23、二叉搜索树的后序遍历序列 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

??題目描述:

??輸入一個(gè)整數(shù)數(shù)組,判斷該數(shù)組是不是某二叉搜索樹的后序遍歷的結(jié)果。如果是則輸出Yes,否則輸出No。假設(shè)輸入的數(shù)組的任意兩個(gè)數(shù)字都互不相同。

??解題思路:

??對(duì)于后續(xù)遍歷序列,序列的最后一個(gè)值一定是樹的根結(jié)點(diǎn),而由二叉搜索樹的性質(zhì):左小右大,我們可以從頭開始遍歷,當(dāng)遍歷到某個(gè)值比根結(jié)點(diǎn)大時(shí)停止,記為flag,此時(shí)flag之前的所有數(shù)值都是二叉搜索樹的左子樹的結(jié)點(diǎn),flag以及flag之后的所有數(shù)都是二叉搜索樹的右子樹的結(jié)點(diǎn)。這是由二叉搜索樹以及后序遍歷共同決定的。

??接下來,我們就可以把任務(wù)交給遞歸,同樣的方法去判斷左子樹和右子樹是否是二叉搜索樹,這顯然是典型的遞歸解法。

??舉例:

??以{5,7,6,9,11,10,8}為例,后序遍歷結(jié)果的最后一個(gè)數(shù)字8就是根結(jié)點(diǎn)的值。在這個(gè)數(shù)組中,前3個(gè)數(shù)字5、7和6都比8小,是值為8的結(jié)點(diǎn)的左子樹結(jié)點(diǎn);后3個(gè)數(shù)字9、11和10都比8大,是值為8的結(jié)點(diǎn)的右子樹結(jié)點(diǎn)。

??我們接下來用同樣的方法確定與數(shù)組每一部分對(duì)應(yīng)的子樹的結(jié)構(gòu)。這其實(shí)就是一個(gè)遞歸的過程。對(duì)于序列5、7、6,最后一個(gè)數(shù)字6是左子樹的根結(jié)點(diǎn)的值。數(shù)字5比6小,是值為6的結(jié)點(diǎn)的左子結(jié)點(diǎn),而7則是它的右子結(jié)點(diǎn)。同樣,在序列9、11、10中,最后一個(gè)數(shù)字10是右子樹的根結(jié)點(diǎn),數(shù)字9比10小,是值為10的結(jié)點(diǎn)的左子結(jié)點(diǎn),而11則是它的右子結(jié)點(diǎn),所以它對(duì)應(yīng)的二叉搜索樹如下:



??編程實(shí)現(xiàn)(Java):

public class Solution {public boolean VerifySquenceOfBST(int [] sequence) {if(sequence==null||sequence.length==0)return false;return VerifySquenceOfBST(sequence,0,sequence.length-1);}public boolean VerifySquenceOfBST(int [] sequence,int begin,int end){if(end<=begin) //結(jié)束條件return true;//end為根節(jié)點(diǎn),找左右子樹的分界int i=begin;for(;i<end;i++) //找邊界,并同時(shí)判斷了左子樹都小于根if(sequence[i]>sequence[end])break;for(int j=i+1;j<end;j++) //右子樹如果存在小于根的,則不是二叉搜索樹if(sequence[j]<sequence[end])return false;return VerifySquenceOfBST(sequence,begin,i-1) && VerifySquenceOfBST(sequence,i,end-1);}
}

轉(zhuǎn)載于:https://www.cnblogs.com/gzshan/p/10796115.html

總結(jié)

以上是生活随笔為你收集整理的【剑指Offer】23、二叉搜索树的后序遍历序列的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。