題目描述
給你一棵以 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%的用戶