簡體   English   中英

class屬性和function在python中的遞歸

[英]class attributes and recursion of function in python

我剛剛解決了 leetcode 上的問題,但我無法理解這段代碼中的一件事:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def maxDepth(self, root: Optional[TreeNode]) -> int:
        if not root:
            return 0
        return 1 + max(self.maxDepth(root.left), self.maxDepth(root.right))

據我了解,root 是一個 TreeNode object,這就是為什么它應該具有 TreeNode 的所有屬性,如valleftright 在最后一個字符串中, right left 但是當我寫if not root.val時它返回了一個錯誤N.netype object has no attribute val 為什么return我們可以使用root的屬性,但我們不能使用if not root.val

這不是你說的。 代碼沒有使用root的屬性,它本質上是在查詢root ,詢問: "Are you a TreeNode, or None?" .

如果為None ,則執行return 0

如果它不是None那么它一定是一個TreeNode ,那么它就會有leftright屬性。

我確信可能有許多TreeNode的實例具有屬性val == 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM