# 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;
}