Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Definition for a binary tree node.
- * public class TreeNode {
- * int val;
- * TreeNode left;
- * TreeNode right;
- * TreeNode(int x) { val = x; }
- * }
- */
- class Solution {
- public List<TreeNode> delNodes(TreeNode root, int[] to_delete) {
- List<TreeNode> ans1 = new ArrayList<TreeNode>();
- if (to_delete.length==0)
- {
- ans1.add(root);
- return ans1;
- }
- HashSet<Integer> set = new HashSet<Integer>();
- for(int e:to_delete)
- set.add(e);
- ArrayList<TreeNode> ans = delNodes(root, set);
- if(!set.contains(root.val))
- ans.add(root);
- return ans;
- }
- public ArrayList<TreeNode> delNodes(TreeNode root, HashSet<Integer> set)
- {
- ArrayList<TreeNode> ans = new ArrayList<TreeNode>();
- if(root==null)
- return null;
- TreeNode left=root.left;
- TreeNode right=root.right;
- if (set.contains(root.val))
- {
- root=null;
- if(left!=null&&!set.contains(left.val))
- ans.add(left);
- if(right!=null&&!set.contains(right.val))
- ans.add(right);
- }
- if(left!=null)
- ans.addAll(delNodes(left, set));
- if(right!=null)
- ans.addAll(delNodes(right, set));
- return ans;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement