Leetcode - Maximum Binary Tree
Leetcode - Increasing Order Search Tree

Leetcode - Delete Leaves With a Given Value

violet posted @ Apr 25, 2020 07:58:12 AM in 算法 with tags Algorithm Golang tree , 189 阅读

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 targetif 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
}

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter