二叉树节点间的最大距离问题
二叉树节点间的最大距离问题 求二叉树两节点间的最大距离(可能过根节点,也可能不过),LeetCode 543 思路 最大距离可能来自三种情况: 根节点左子树上的最大距离 根节点右子树上的最大距离 左孩子最大深度ldepth,到根节点,到右孩子最大深度rdepth 实现1 def max_distance ( self ) : def post_order ( node ) : if node is None : record [ 0 ] = 0 return 0 lmax = post_order ( node . left ) max_from_left = record [ 0 ] rmax = post_order ( node . right ) max_from_right = record [ 0 ] cur_max = max_from_left + max_from_right + 1 record [ 0 ] = max ( max_from_left , max_from_right ) + 1 return max ( max ( lmax , rmax ) , cur_max ) if not self . root : return 0 record = [ 0 ] return post_order ( self . root ) - 1 实现2 def