diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 00000000..26d33521
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/Trees-1.iml b/.idea/Trees-1.iml
new file mode 100644
index 00000000..b107a2dd
--- /dev/null
+++ b/.idea/Trees-1.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 00000000..919ce1f1
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 00000000..a55e7a17
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 00000000..f5bd2dfe
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 00000000..5cffe90c
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 00000000..35eb1ddf
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IsValidBST.java b/IsValidBST.java
new file mode 100644
index 00000000..fda722c4
--- /dev/null
+++ b/IsValidBST.java
@@ -0,0 +1,34 @@
+import javax.swing.tree.TreeNode;
+import java.util.LinkedList;
+import java.util.List;
+
+public class IsValidBST {
+ public boolean isValidBST(TreeNode root) {
+ List inOrderList = new LinkedList<>();
+ //populate the list
+ helper(root, inOrderList);
+ boolean isBST=true;
+ int prev = inOrderList.get(0);
+ for(int i = 1; i < inOrderList.size(); i++){
+ //check if element is smaller than previous element or if element is duplicate
+ if(inOrderList.get(i)<= prev){
+ isBST = false;
+ }
+ //updating prev element
+ prev = inOrderList.get(i);
+ }
+ return isBST;
+ }
+
+ void helper(TreeNode treeNode, List inOrderList){
+ if(treeNode==null){
+ return;
+ }
+ helper(treeNode.left, inOrderList);
+ inOrderList.add(treeNode.val);
+ helper(treeNode.right, inOrderList);
+ }
+}
+
+//TC: O(N)
+//SC: O(N)