假设我有一个二叉搜索树 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
如果我运行以下函数,我想知道递归函数执行了多少次(在以下示例中为31)
def loopBST(root):
if not root:
return
loopBST(root.left)
loopBST(root.right)
Run Code Online (Sandbox Code Playgroud)
我可以通过创建一个全局变量来获得
global ind
ind = 0
def loopBST(root):
global ind
ind += 1
if not root:
return
loopBST(root.left)
loopBST(root.right)
loopBST(bsttree)
Run Code Online (Sandbox Code Playgroud)
变量ind将为31。
问题是,如何ind在dfs函数内部创建此变量而不是创建全局变量?
您可以使用参数。
def loopBST(root, times=0):
times += 1
if not root:
return times
times = loopBST(root.left, times=times)
times = loopBST(root.right, times=times)
return times
loopBST(bsttree)
Run Code Online (Sandbox Code Playgroud)
您可以返回执行次数:
def loopBST(root):
if not root:
return 1
return 1 + loopBST(root.left) + loopBST(root.right)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1802 次 |
| 最近记录: |