time: 20190906
type: medium
給定二叉樹根結點 root ,此外樹的每個結點的值要麼是 0,要麼是 1。
返回移除了所有不包含 1 的子樹的原二叉樹。
( 節點 x 的子樹為 x 本身,以及所有 x 的後代。)
示例1:
輸入: [1,null,0,0,1]
輸出: [1,null,0,null,1]
解釋:只有紅色節點滿足條件「所有不包含 1 的子樹」。
右圖為返回的答案。
示例2:
輸入: [1,0,1,0,0,0,1]
輸出: [1,null,1,null,1]
示例3:
輸入: [1,1,0,1,1,0,1,0]
輸出: [1,1,0,1,1,null,1]
深度優先搜尋,到達葉子結點時,看值是不是1
,不是的話,向上返回none
即可。
# definition for a binary tree node.
# class treenode:
# def __init__(self, x):
# self.val = x
# self.left = none
# self.right = none
class
solution
:def
prunetree
(self, root: treenode)
-> treenode:
ifnot root:
return
none
root.left = self.prunetree(root.left)
root.right = self.prunetree(root.right)
# 到達葉子結點
if root.left ==
none
and root.right ==
none
:if root.val ==0:
return
none
return root
end. leetcode 814 二叉樹剪枝
給定二叉樹根結點 root 此外樹的每個結點的值要麼是 0,要麼是 1。返回移除了所有不包含 1 的子樹的原二叉樹。節點 x 的子樹為 x 本身,以及所有 x 的後代。示例1 輸入 1,null,0,0,1 輸出 1,null,0,null,1 解釋 只有紅色節點滿足條件 所有不包含 1 的子樹 右...
Leetcode 814 二叉樹剪枝 做題小結
給定二叉樹根結點 root 此外樹的每個結點的值要麼是 0,要麼是 1。返回移除了所有不包含 1 的子樹的原二叉樹。節點 x 的子樹為 x 本身,以及所有 x 的後代。示例1 輸入 1,null,0,0,1 輸出 1,null,0,null,1 解釋 只有紅色節點滿足條件 所有不包含 1 的子樹 右...
LeetCode 二叉樹剪枝 814
給定二叉樹根結點root,此外樹的每個結點的值要麼是 0,要麼是 1。返回移除了所有不包含 1 的子樹的原二叉樹。節點 x 的子樹為 x 本身,以及所有 x 的後代。示例1 輸入 1,null,0,0,1 輸出 1,null,0,null,1 解釋 只有紅色節點滿足條件 所有不包含 1 的子樹 右圖...