The Indian Engineer

Problem 1325 Delete Leaves With a Given Value

Posted on 2 mins

Binary-Tree Dfs Recursion Postorder

Problem Statement

Link - Problem 1325

Question

Given a binary tree root and an integer target, delete all the leaf nodes with value target.

Note that once you delete a leaf node with value target, if its parent node becomes a leaf node and has the value target, it should also be deleted (you need to continue doing that until you cannot).

Example 1

Input: root = [1,2,3,2,null,2,4], target = 2
Output: [1,null,3,null,4]
Explanation: Leaf nodes in green with value (target = 2) are removed (Picture in left).
After removing, new nodes become leaf nodes with value (target = 2) (Picture in center).
flowchart TD id1(input) A((1)) --> B((2)) A --> C((3)) C --> D((2)) D --> E((2)) D --> F((4)) id2(Output) G((1)) -->H((3)) H --> I((4))

Example 2

Input: root = [1,3,3,3,2], target = 3
Output: [1,3,null,null,2]
flowchart TD id1(input) A((1)) --> B((3)) A --> C((3)) C --> D((3)) D --> E((3)) D --> F((2)) id2(Output) G((1)) -->H((3)) H --> I((2))

Example 3

Input: root = [1,2,null,2,null,2], target = 2
Output: [1]
Explanation: Leaf nodes in green with value (target = 2) are removed at each step.
flowchart TD id1(input) A((1)) --> B((2)) A --> C((2)) C --> D((2)) id2(Output) E((1))

Constraints

Solution

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    TreeNode* removeLeafNodes(TreeNode* root, int target) {
        if (!root)
            return nullptr;

        root->left = removeLeafNodes(root->left, target);
        root->right = removeLeafNodes(root->right, target);

        if (!root->left && !root->right && root->val == target)
            return nullptr;

        return root;

    }
};

Complexity Analysis

Explanation

1. Intuition

2. Implementation