解题思路:
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;
}
}
运行结果: