diff --git a/Problem1.java b/Problem1.java new file mode 100644 index 00000000..f151ca91 --- /dev/null +++ b/Problem1.java @@ -0,0 +1,50 @@ +//BFS solution +class Solution { + public List rightSideView(TreeNode root) { + List result = new ArrayList<>(); + Queue q= new LinkedList<>(); + if(root==null) return result; + q.add(root); + while(!q.isEmpty()){ + int size=q.size(); + for(int i=0; i rightSideView(TreeNode root) { + List result = new ArrayList<>(); + //if(root==null) return result; + dfs(root,0,result); + return result; + } + + private void dfs(TreeNode root, int level,List result){ + //base + if(root==null) return; + //logic + if(level==result.size()){ + result.add(root.val); + } + dfs(root.right,level+1,result); + dfs(root.left,level+1,result); + + } +} \ No newline at end of file diff --git a/Problem2.java b/Problem2.java new file mode 100644 index 00000000..8436398c --- /dev/null +++ b/Problem2.java @@ -0,0 +1,74 @@ +//Using BFS +class Solution { + public boolean isCousins(TreeNode root, int x, int y) { + Queue q= new LinkedList<>(); + //pq=parent queue + Queue pq=new LinkedList<>(); + q.add(root); + pq.add(null); + while(!q.isEmpty()){ + int size=q.size(); + boolean x_found=false; + boolean y_found=false; + TreeNode x_parent=null; + TreeNode y_parent=null; + for(int i=0;i