---
# System prepended metadata

title: 1325. Delete Leaves With a Given Value

---

# 1325. Delete Leaves With a Given Value
## Tóm tắt đề bài

Cho một cây nhị phân, và một số nguyên **target**, xóa mọi nút lá có giá trị bằng **target**.

### Giới hạn
* Các nút nằm trong khoảng [1, 3000].
* 1 <= Node.val, target <= 1000

## Lời giải
- Duyệt cây **post-order**:
    - Nếu nút là lá, xét xem giá trị có bằng `target` hay không, nếu có thì trả về null.
    - Nếu nút không phải lá, đệ quy xuống hai nút con trái và phải.

### Độ phức tạp thuật toán

Thời gian: $O(N)$
Bộ nhớ: $O(logN)$ (tối đa là chiều cao của cây)

### Code tham khảo
```java
public TreeNode removeLeafNodes(TreeNode root, int target) {
        if (root == null) {
            return null;
        }

        root.left = removeLeafNodes(root.left, target);
        root.right = removeLeafNodes(root.right, target);

        // If it's a leaf
        if (root.val == target && root.left == null && root.right == null) {
            return null;
        }

        return root;
    }