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