diff options
author | jack <[email protected]> | 2024-06-14 13:13:15 -0600 |
---|---|---|
committer | jack <[email protected]> | 2024-06-14 13:13:15 -0600 |
commit | d343a3b18dbaca9297d4f7b2280c4a16f0a5c8aa (patch) | |
tree | 96df922dae2a5073d9a50ea70c7aae6aa37e3ebe /delete_leaves_given_value.py | |
download | leetcode-d343a3b18dbaca9297d4f7b2280c4a16f0a5c8aa.tar.gz leetcode-d343a3b18dbaca9297d4f7b2280c4a16f0a5c8aa.zip |
initial
Diffstat (limited to 'delete_leaves_given_value.py')
-rw-r--r-- | delete_leaves_given_value.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/delete_leaves_given_value.py b/delete_leaves_given_value.py new file mode 100644 index 0000000..e5c6be7 --- /dev/null +++ b/delete_leaves_given_value.py @@ -0,0 +1,30 @@ +# 1325. 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 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) +""" + + +# Definition for a binary tree node. +class TreeNode(object): + def __init__(self, val=0, left=None, right=None): + self.val = val + self.left = left + self.right = right + + +class Solution(object): + def removeLeafNodes(self, root, target): + """ + :type root: TreeNode + :type target: int + :rtype: TreeNode + """ + if root.left: + root.left = self.removeLeafNodes(root.left, target) + if root.right: + root.right = self.removeLeafNodes(root.right, target) + return None if root.left == root.right and root.val == target else root |