【力扣】1325:刪除給定值的葉子節點

題目描述

給你一棵以 root 爲根的二叉樹和一個整數 target ,請你刪除所有值爲 target 的 葉子節點 。

注意,一旦刪除值爲 target 的葉子節點,它的父節點就可能變成葉子節點;如果新葉子節點的值恰好也是 target ,那麼這個節點也應該被刪除。

也就是說,你需要重複此過程直到不能繼續刪除。

算法思路

注意:由此使用後序遍歷。

class Solution:
    def removeLeafNodes(self, root: TreeNode, target: int) -> TreeNode:
        if not root:return

        root.left=self.removeLeafNodes(root.left,target)
        root.right=self.removeLeafNodes(root.right,target)

        if not (root.left or root.right) and root.val==target:root=None
        
        return root

執行用時 :56 ms, 在所有 Python3 提交中擊敗了75.99%的用戶
內存消耗 :14 MB, 在所有 Python3 提交中擊敗了100.00%的用戶

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章