classTreeNode:def__init__(self,val=0,left=None,right=None):self.val=valself.left=leftself.right=rightdefget_height(root):ifrootisNone:return0ifroot.leftisNoneandroot.rightisNone:return1ifroot.leftisNoneandroot.rightisnotNone:returnget_height(root.right)+1ifroot.leftisnotNoneandroot.rightisNone:returnget_height(root.left)+1# root.left is not None and root.right is not None:returnmax(get_height(root.left),get_height(root.right))+1defget_diameter(root):ifrootisNone:return0left_height=get_height(root.left)right_height=get_height(root.right)root_diameter=left_height+right_height+1left_diameter=get_diameter(root.left)right_diameter=get_diameter(root.right)returnmax(left_diameter,right_diameter,root_diameter)