package tree;
import java.util.LinkedList;
import java.util.List;
/**
* Description:
*
* @author elijahliu
* @Note Talk is cheap,just show me ur code.- -!
* ProjectName:EAlgorithm
* PackageName: tree
* Date: 2020/8/16 15:50
*/
public class LeetCode98 {
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}
List inOrder = new LinkedList<>();
public boolean isValidBST(TreeNode root) {
inOrder(root);
for (int i = 1; i < inOrder.size(); i++) {
if (inOrder.get(i).val <= inOrder.get(i - 1).val) {
return false;
}
}
return true;
}
// æ¹æ³1 å©ç¨äºå平衡æ¯ä¸åºéåä¹åæ¯é墿°ç»çç¹æ§ï¼æ¥å¤ææ¯ä¸æ¯åæ³äºåæ
void inOrder(TreeNode root) {
if (root == null) {
return;
}
inOrder(root.left);
inOrder.add(root);
inOrder(root.right);
}
// æ¹æ³äº åæ¹æ³ä¸ç±»ä¼¼ 使¯ä¸éè¦å卿´ä¸ªæ°ç»ï¼åªéè¦è®°å½åä¸ä¸ªéåçæ°ï¼å¹¶ä¸å¤ææ¯ä¸æ¯å°äºåä¸ä¸ªæ°å³å¯
TreeNode preNode = null;
boolean inOrder2(TreeNode root){
if (root == null) {
return true;
}
//妿éåå·¦åæ ä¸ä¸ºå¹³è¡¡ åç´æ¥è¿åfalse
if (!inOrder2(root.left)) {
return false;
}
if (preNode != null && root.val <= preNode.val) {
return false;
}
preNode = root;
return inOrder2(root.right);
}
}