Leetcode 814 二叉樹剪枝

2021-09-26 22:24:00 字數 1342 閱讀 2886

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 的子樹 右圖...