JZX轻语:简

LeetCode 1325 - 删除给定值的叶子节点

发表于2024年07月29日

#二叉树 #后序遍历

简单的后序遍历题目,首先递归遍历左右子树,子树遍历完毕后再判断当前节点是否为叶子节点且值为target,如果是则删除该节点。最后返回操作后的子树根节点(如果被删除了则返回空)。

class Solution:
    def is_leaf(self, node: TreeNode):
        return node.left is None and node.right is None

    def removeLeafNodes(self, root: Optional[TreeNode], target: int) -> Optional[TreeNode]:
        if root is None:
            return None
        root.left = self.removeLeafNodes(root.left, target)
        root.right = self.removeLeafNodes(root.right, target)
        if self.is_leaf(root) and root.val == target:
            return None
        return root

闪念标签:LC

题目链接:https://leetcode.cn/problems/delete-leaves-with-a-given-value/