是不是因为嵌套函数需要在堆栈中存储比非嵌套版本更多的状态?如果是这样,那么额外的存储状态是什么?你知道吗
该代码用于Leetcode Balaned Binary Tree,它使用两个递归函数。你知道吗
# Definition for a binary tree node
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# @param root, a tree node
# @return a boolean
def isBalanced(self, root):
if root is None:
return True
def getHeight(root):
if root is None:
return 0
return max(getHeight(root.left), getHeight(root.right)) + 1
if abs(getHeight(root.left)-getHeight(root.right)) > 1:
return False
return self.isBalanced(root.left) and self.isBalanced(root.right)
递归嵌套函数在递归深度较大时会产生堆栈溢出错误。你知道吗
以下功能正常。你知道吗
class Solution:
# @param root, a tree node
# @return a boolean
def getHeight(self, root):
if root is None:
return 0
return max(self.getHeight(root.left), self.getHeight(root.right)) + 1
def isBalanced(self, root):
if root is None:
return True
if abs(self.getHeight(root.left) - self.getHeight(root.right)) > 1:
return False
return self.isBalanced(root.left) and self.isBalanced(root.right)
目前没有回答
相关问题 更多 >
编程相关推荐