二叉树节点间的最大距离
生活随笔
收集整理的這篇文章主要介紹了
二叉树节点间的最大距离
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
問(wèn)題:?
從二叉樹節(jié)點(diǎn)A出發(fā),可以向上或者向下走,但沿途的節(jié)點(diǎn)只能經(jīng)過(guò)一次,當(dāng)?shù)竭_(dá)節(jié)點(diǎn)B時(shí),路徑上的節(jié)點(diǎn)數(shù)叫做A到B的距離。
基本思路:?
一個(gè)以h為頭的樹上,最大的距離只可能來(lái)自以下三種情況:
h左子樹上的最大距離
h右子樹上的最大距離
h左子樹上離h.left最遠(yuǎn)的距離+1+h右子樹上離h.right最遠(yuǎn)的距離
三個(gè)值中的最大值就是整棵h樹中最遠(yuǎn)的距離
def maxDistance(root):return process(root)[0]def process(root):#['最大距離','樹的高度']if root == None:return [0,0]leftData = process(root.left)rightData = process(root.right)height = max(leftData[1],rightData[1]) + 1maxDistance = max(max(leftData[0],rightData[0]),leftData[1] + rightData[1] +1)return [maxDistance,height]?
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的二叉树节点间的最大距离的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 找到二叉树中的最大搜索子树
- 下一篇: 派对的最大快乐值