一亩三分地

 找回密码 注册账号

扫描二维码登录本站

微信公众号
扫码关注公众号
留学申请号
扫码关注留学申请公众号
查看: 259|回复: 2
收起左侧

[Leetcode] 求助:863. All Nodes Distance K in Binary Tree 代码哪里出了问题呢

[复制链接] |只看干货 |刷题, leetcode
我的人缘0

升级   30%


分享帖子到朋友圈
matalin | 显示全部楼层 |阅读模式
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   96% (24)
 
 
4% (1)    👎
能不能请地里哪位大神帮忙看一下,下面的这段代码是哪里出了问题呢?为什么跑出来是wrong answer呢?
太感谢啦!
PS. LC的discussion改版之后就看不到我自己发的求助贴了,因为把newest这些sorted by都拿掉了。。心累┓(;′_`)┏
题目在这里:https://leetcode.com/problems/al ... e-k-in-binary-tree/

[Python] 纯文本查看 复制代码
class Solution:
    def distanceK(self, root: TreeNode, target: TreeNode, K: int) -> List[int]:
        res = []
        seen = []
        self.attachParent(root)
        self.dfs(target, K, seen, res)
        return res

    def attachParent(self, node, par = None):
        if node:
            node.par = par
            self.attachParent(node.left, node)
            self.attachParent(node.right, node)
        
    def dfs(self, node, k, seen, res):
        if not node or node in seen:
            return
        seen.append(node.val)
        if k == 0:
            res.append(node.val)
            return
        self.dfs(node.left, k-1, seen, res)
        self.dfs(node.right, k-1, seen, res)
        self.dfs(node.par, k-1, seen, res)




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册账号

x

评分

参与人数 1大米 +2 收起 理由
14417335 + 2

查看全部评分


上一篇:Python相比C++/Java刷题和面试到底有没有劣势
下一篇:刷题/惰性求助
我的人缘0
luke77gu 2020-11-24 02:37:09 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   100% (64)
 
 
0% (0)    👎
本帖最后由 luke77gu 于 2020-11-24 02:48 编辑

帮你改了一下,应该就是你存入或者检查seen的时候要存或者check val不是整个node. 你在check的时候应该是笔误少打了个.val
[Python] 纯文本查看 复制代码
class Solution:
    def distanceK(self, root: TreeNode, target: TreeNode, K: int) -> List[int]:
        res = []
        seen = []
        self.attachParent(root)
        self.dfs(target, K, seen, res)
        return res
 
    def attachParent(self, node, par = None):
        if node:
            node.par = par
            self.attachParent(node.left, node)
            self.attachParent(node.right, node)
         
    def dfs(self, node, k, seen, res):
        if not node or node.val in seen:
            return
        seen.append(node.val)
        if k == 0:
            res.append(node.val)
            seen.append(node.val)
            return
        self.dfs(node.left, k-1, seen, res)
        self.dfs(node.right, k-1, seen, res)
        self.dfs(node.par, k-1, seen, res)

评分

参与人数 1大米 +1 收起 理由
matalin + 1 谢谢你的帮助!

查看全部评分

回复

使用道具 举报

我的人缘0

升级   30%

 楼主| matalin 2020-11-25 00:48:11 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   96% (24)
 
 
4% (1)    👎
luke77gu 发表于 2020-11-24 02:37
帮你改了一下,应该就是你存入或者检查seen的时候要存或者check val不是整个node. 你在check的时候应该是笔 ...

啊。。。。原来是这样,还是大神眼尖而且有经验!
太感谢了呀!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■拉群请前往同学同事飞友|拉群结伴版块,其他版块拉群,帖子会被自动删除
■论坛不能删帖,为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://tools.1point3acres.com/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|||一亩三分地

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

Some icons made by Freepik from flaticon.com

快速回复 返回顶部 返回列表