[問題] Leetcode 1660,tree的問題
各位版友好,在刷leetcode 1660時碰到了一個問題,但不知錯誤在哪。
我的想法是使用BFS,逐個level找題目所要的invalid node,找到的話就將invalid node
的本身,以及其左右子樹設為None。
以下是我的code:
# 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 correctBinaryTree(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
queue = collections.deque([root])
while queue:
visited = set()
for _ in range(len(queue)):
curr = queue.popleft()
visited.add(curr)
if curr.right in visited:
curr.left = None
curr.right = None
curr = None
continue
if curr.right:
queue.append(curr.right)
if curr.left:
queue.append(curr.left)
return root
但是,對於這個test case:
[1,2,3]
2
3
我所return的還是原本的樹:[1,2,3],顯然invalid node沒有被設為None。請問是為什
麼呢? 我先謝謝各位願意看完我的問題,有不清楚的地方我會再補充!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.170.26.70 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1629257599.A.4EB.html
→
08/18 11:44,
3年前
, 1F
08/18 11:44, 1F
推
08/18 11:52,
3年前
, 2F
08/18 11:52, 2F
推
08/18 12:00,
3年前
, 3F
08/18 12:00, 3F
→
08/18 12:00,
3年前
, 4F
08/18 12:00, 4F
→
08/18 12:00,
3年前
, 5F
08/18 12:00, 5F
→
08/18 12:24,
3年前
, 6F
08/18 12:24, 6F
→
08/18 12:24,
3年前
, 7F
08/18 12:24, 7F
→
08/18 12:25,
3年前
, 8F
08/18 12:25, 8F
→
08/18 12:26,
3年前
, 9F
08/18 12:26, 9F
推
08/18 16:21,
3年前
, 10F
08/18 16:21, 10F
→
08/18 16:21,
3年前
, 11F
08/18 16:21, 11F
→
08/18 21:40,
3年前
, 12F
08/18 21:40, 12F
→
08/18 23:22,
3年前
, 13F
08/18 23:22, 13F
→
08/18 23:22,
3年前
, 14F
08/18 23:22, 14F
→
08/18 23:27,
3年前
, 15F
08/18 23:27, 15F
→
08/18 23:27,
3年前
, 16F
08/18 23:27, 16F
→
08/19 23:40,
3年前
, 17F
08/19 23:40, 17F
Python 近期熱門文章
PTT數位生活區 即時熱門文章