[英]How does this recursive function with two different return types work?
下面的這個函數找到了到達二叉樹中指定節點的指令(“L”=左,“R”=右)。
def find(n: TreeNode, val: int, path: List[str]) -> bool:
if n.val == val:
return True
if n.left and find(n.left, val, path):
path += "L"
elif n.right and find(n.right, val, path):
path += "R"
return path
我看到基本情況返回True
以完成循環,並告訴前面的遞歸調用它們所在的路徑最終將到達 val 節點,但我不明白return path
在哪里適合所有這些。
boolean
和List[str]
)?path
呢? 刪除該行確實給了我錯誤的答案,但是我看不到任何將返回值設置為以某種方式使用的變量的地方。 A1。 “-> bool”稱為 Python 類型提示。 Python 類型提示在運行時不使用。 事實上,當您的程序運行時,您提供的所有類型信息都已被刪除。 換句話說,Python 不關心類型。 您可以從此處了解有關 Python 類型提示的更多信息。
A2-1。 path
變量保存搜索路徑。 當頂層find
中的path
返回時,您將獲得完整的搜索路徑。
A2-2 如果沒有return
,Python 中的函數將返回None
。 例如:
def foo():
print("hello")
foo 返回None
,與下面的 foo2 相同
def foo2():
print("hello")
return None
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.