【leetcode】98.(Medium)Validate Binary Search Tree
阿新 • • 發佈:2018-12-18
解題思路:
morris遍歷
提交程式碼:
class Solution {
public boolean isValidBST(TreeNode root) {
TreeNode cur = root, pre=null,tmp=null;
while (cur != null) {
if (cur.left == null) {
if(pre!=null&&pre.val>=cur.val) return false;
pre=cur;cur = cur.right;
//if(pre.val>cur.val) return false;
} else {
tmp = cur.left;
while (tmp.right != null && tmp.right != cur)
tmp = tmp.right;
if (tmp.right == null) {
tmp.right = cur;
cur=cur.left;
} else {
if(pre.val>=cur.val) return false;
pre=cur;cur=cur.right;
tmp.right = null;
}
}
}
return true;
}
}
執行結果: