Binary Tree Diameter

Tiffany ·2024년 3월 9일
0

AlgoExpert

목록 보기
14/20

글로벌을 쓸수 있을때



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))
profile
Love what you do and don't quit.

0개의 댓글