1. 程式人生 > >【leetcode】98.(Medium)Validate Binary Search Tree

【leetcode】98.(Medium)Validate Binary Search Tree

解題思路:
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; } }

執行結果:

在這裡插入圖片描述