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)