首页 > 解决方案 > 理解:“def rangeSumBST(self, root: TreeNode, L: int, R: int) -> int:” on leetcode

问题描述

我正在解决有关 leetcode 的一些问题,但我不理解他们编写的相同代码。例如,为什么会有一个指向 int (-> int:) 的箭头?我也不明白 TreeNode 的用途。只是为了验证输入吗?

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def rangeSumBST(self, root: TreeNode, L: int, R: int) -> int:

标签: pythonalgorithmclass

解决方案


调用函数注释,请阅读此页面。

https://www.python.org/dev/peps/pep-3107/

或者

-> 在 Python 函数定义中是什么意思?

更详细地说,Python 2.x 有文档字符串,它允许您将元数据字符串附加到各种类型的对象。这非常方便,因此 Python 3 通过允许您将元数据附加到描述其参数和返回值的函数来扩展该功能。

没有先入为主的用例,但 PEP 提出了几个。一种非常方便的方法是允许您使用预期类型注释参数;然后很容易编写一个装饰器来验证注释或将参数强制为正确的类型。另一个是允许特定参数的文档,而不是将其编码到文档字符串中。

用户:卡特里尔

TreeNode本身是二叉树数据结构的一部分,我不知道所提到的具体 leetcode 问题,但本质上该树是由许多通过变量TreeNodes引用其他的树组成的,名称用于模拟可视二进制树传统上看起来像。他们只是在定义节点,以便您可以了解在回答问题时期望什么类。TreeNodesself.leftleft.right

https://www.geeksforgeeks.org/binary-tree-data-structure/


推荐阅读