1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
class Solution { List<TreeNode> ans = new ArrayList<>(); boolean[] s = new boolean[1001];
public List<TreeNode> delNodes(TreeNode root, int[] to_delete) { for (int x : to_delete) s[x] = true; if (dfs(root) != null) ans.add(root); return ans; }
private TreeNode dfs(TreeNode node) { if (node == null) return null; node.left = dfs(node.left); node.right = dfs(node.right); if (!s[node.val]) return node; if (node.left != null) ans.add(node.left); if (node.right != null) ans.add(node.right); return null; } }
|