查看: 754| 回复: 2
跳转到指定楼层
上一主题 下一主题
收起左侧

[树/链表/图] 由104. Maximum depth of binary tree引申的关于global result和self.result的疑问

全局:

注册一亩三分地论坛,查看更多干货!

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

x
class Solution:
    def maxDepth(self, root: Optional[TreeNode]) -> int:


        if not root:
            return 0
        def dfs(root, depth):
            # main process            
            depth += 1
            if not root.left and not root.right:
                self.result = max(depth, self.result)
            # Rec
            if root.left:
                dfs(root.left, depth)
            if root.right:
                dfs(root.right, depth)
        self.result = 0
        dfs(root, 0)
        return self.result


大家不用太细看这道题我的代码,我想问一个由这道题引申的一个概念问题。
这道题,如果我不这么定义self.result = 0,而是把result = 0写在class solution上面,然后在def dfs后面写global result。
那么最后这个代码对root = [1, null, 2]这个树的运行结果是3,而不是2。

目前目的就是想在dfs函数内部用一个外部变量,那么我目前看来定义self.也好,定义最上面然后用global也好,应该是一样的,可为什么只有self.是成功的?








上一篇:返回第二大的元素index
下一篇:Match users with other teams
全局:
你应该写完nonlocal result
回复

使用道具 举报

🔗
 楼主| ATPtennis 2021-8-29 01:45:23 | 只看该作者
全局:
Dayflower 发表于 2021-8-28 18:56
你应该写完nonlocal result

谢谢!!!!解惑了!!!!!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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