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) {
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