글로벌을 쓸수 있을때
def binaryTreeDiameter(tree):
global longestDiameter
longestDiameter = 0
getHeight(tree)
return longestDiameter
def getHeight(root):
global longestDiameter
if root is None:
return 0
leftHeight = getHeight(root.left)
rightHeight = getHeight(root.right)
currDiameter = leftHeight + rightHeight
longestDiameter = max(currDiameter, longestDiameter)
return 1+ max(leftHeight, rightHeight)
글로벌 쓸수 없을때
def getHeight(root):
if root is None:
return 0
leftHeight = getHeight(root.left)
rightHeight = getHeight(root.right)
return 1+ max(leftHeight, rightHeight)
def binaryTreeDiameter(tree):
if tree is None:
return 0
left = getHeight(tree.left)
right = getHeight(tree.right)
diameter = left + right
return max(diameter,binaryTreeDiameter(tree.left), binaryTreeDiameter(tree.right))