Leetcode - Delete Leaves With a Given Value
https://leetcode.com/problems/delete-leaves-with-a-given-value/
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 it's parent node becomes a leaf node and has the value target
, it should also be deleted (you need to continue doing that until you can't).
Example 1:
Input: root = [1,2,3,2,null,2,4], target = 2 Output: [1,null,3,null,4]
/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ func removeLeafNodes(root *TreeNode, target int) *TreeNode { if root.Left != nil { root.Left = removeLeafNodes(root.Left, target) } if root.Right != nil { root.Right = removeLeafNodes(root.Right, target) } if root.Left == root.Right && root.Val == target { return nil } return root }