Leetcode 反转二叉树问题 - Python 解决方案运行时

问题描述 投票:0回答:1

所以基本上我解决了leetcode上经典的倒二叉树问题。对于第一个解决方案,在基本情况下,我返回 None。该解决方案在运行时间方面仅优于 25% 左右。然而,对于第二个解决方案,我没有为基本情况返回任何内容,现在它超过了 99%。有谁知道为什么会这样?谢谢!

这是我的代码

class Solution:
    def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
        if not root:
            return None

        root.left, root.right = root.right, root.left
        self.invertTree(root.left)
        self.invertTree(root.right)
        return root
class Solution:
    def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
        if not root:
            return

        root.left, root.right = root.right, root.left
        self.invertTree(root.left)
        self.invertTree(root.right)
        return root
python python-3.x binary-tree
1个回答
0
投票

您的两个程序实际上是相同的。因为 Python 中裸露的

return
相当于
return None
。您可以通过输出代码的字节码来看到这一点。创建一个名为 x.py 的文件,其中包含以下内容:

import dis

def f1():
    return

def f2():
    return None

dis.dis(f1)
dis.dis(f2)

如果运行它,您将看到每个函数的编译版本是相同的:

> python x.py
  4           0 LOAD_CONST               0 (None)
              3 RETURN_VALUE
  7           0 LOAD_CONST               0 (None)
              3 RETURN_VALUE

我不知道“leetcode”是什么,但它显然不会产生具有统计意义的执行时间数据。我会像躲避瘟疫一样避开它。

© www.soinside.com 2019 - 2024. All rights reserved.