驗證二叉搜尋樹
阿新 • • 發佈:2018-12-09
根據二叉搜尋樹的特點可以得出結論:
二叉搜尋樹的中序遍歷結果排序從左到右依次遞增。
那麼通過一次中序遍歷就可以檢測該樹是否為二叉搜尋樹。
程式碼如下:
class Solution { public int temp=0; public boolean firstNode=true; public boolean isValidBST(TreeNode root) { if(root==null){ return true; } //遍歷左子樹 if(!isValidBST(root.left)){ return false; } //利用firstNode來獲取中序遍歷的第一個值 //比較temp傳遞過來的值是否大於當前值,如果大於就說明前一個數大於現在節點的值,即不為二叉搜尋樹 if(!firstNode&&temp>=root.val)return false; temp=root.val; //利用firstNode來獲取中序遍歷的第一個值 firstNode=false; //繼續遍歷 if(!isValidBST(root.right)){ return false; } return true; //中序遍歷的結果排列為從左到右依次遞增 } }