Python 板


LINE

各位版友好,在刷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://webptt.com/cn.aspx?n=bbs/Python/M.1629257599.A.4EB.html
1F:→ aassdd926: 你的queue先塞的是3再来是2吧,所以找不到 08/18 11:44
2F:推 aassdd926: 喔我看错了 先塞右子树是对的 08/18 11:52
3F:推 aassdd926: 因为我不是用python刷,所以不太确定,但看起来有两种 08/18 12:00
4F:→ aassdd926: 可能,一是set 没找到,二是curr = None这行没改到, 08/18 12:00
5F:→ aassdd926: 可以检查看看 08/18 12:00
6F:→ VivianAnn: 我看Discuss里的解法都是去纪录每个节点的父节点 08/18 12:24
7F:→ VivianAnn: 找到invalid node後再由invalid node的父节点去改 08/18 12:24
8F:→ VivianAnn: 那个方法我懂,但我想知道这个方法为什麽行不通 08/18 12:25
9F:→ VivianAnn: curr = None 这行,我测试是有改到.... 08/18 12:26
10F:推 aassdd926: 我刚刚检查了id ,发现curr=None 让curr 这个变数refe 08/18 16:21
11F:→ aassdd926: r to None value, which is a new space 08/18 16:21
12F:→ VivianAnn: 不懂耶,把curr的ref设为null不是我们想要的吗? 08/18 21:40
13F:→ aassdd926: 是新设一个存 None的空间,然後curr 这个指针指过去, 08/18 23:22
14F:→ aassdd926: 所以原本的 node(2)还留着 08/18 23:22
15F:→ aassdd926: 所以你是改指针指去的位置,而不是指针原本指的空间的 08/18 23:27
16F:→ aassdd926: 值 08/18 23:27
17F:→ VivianAnn: 谢谢,我懂了,这样的话只能由父节点去改了 08/19 23:40







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP