1325. Delete Leaves With a Given Value

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
public TreeNode removeLeafNodes(TreeNode root, int target) {
return dfs(root, target);
}

private TreeNode dfs(TreeNode node, int target) {
// left -> right -> root

if (node == null) {
return null;
}

node.left = dfs(node.left, target);
node.right = dfs(node.right, target);

if (node.left == null && node.right == null && node.val == target) {
return null;
}
return node;
}
}

后序遍历,注意在处理完左右子树后再处理当前节点。

References

1325. Delete Leaves With a Given Value